字符串的哈希值的随机性应通过PYTHONHASHSEED被禁用

时间:2017-05-17 07:54:03

标签: python-3.x pyspark yarn

我在纱线模式上使用火花,运行时遇到问题      pyspark --master yarn 的 在python3.5下,当我运行这样的代码     user_data = sc.textFile("/testdata/u.user") user_fields = user_data.map(lambda line: line.split("|")) num_genders = user_fields.map(lambda fields: fields[2]).distinct().count() 结果显示

File "/data/opt/spark-2.1.0-bin-hadoop2.6/python/pyspark/rdd.py", line 1753, in add_shuffle_key
File "/data/opt/hadoop-2.6.0/tmp/nm-local-dir/usercache/jsdxadm/appcache/application_1494985561557_0005/container_1494985561557_0005_01_000002/pyspark.zip/pyspark/rdd.py", line 74, in portable_hash
raise Exception("Randomness of hash of string should be disabled via PYTHONHASHSEED environ=") 

我尝试但无法解决,你能帮助我吗?

2 个答案:

答案 0 :(得分:2)

spark.executorEnv.PYTHONHASHSEED 0(在您的Spark ./conf目录中)中包含spark-defaults.conf。这应该有效!

答案 1 :(得分:1)

这是Spark 2.1中的问题,已在2.2中解决。如果您无法升级或无法访问spark-defaults.conf,则可以使用

export SPARK_YARN_USER_ENV=PYTHONHASHSEED=0

在你提交工作之前。