当我在群集上使用python3运行spark时。这个错误不断出现:
py4j.protocol.Py4JJavaError: An error occurred while calling z:org.apache.spark.api.python.PythonRDD.collectAndServe.
: org.apache.spark.SparkException: Job aborted due to stage failure: Task 10 in stage 0.0 failed 4 times, most recent failure: Lost task 10.3 in stage 0.0 (TID 24, us-lax-office-dev-03.vpc.supplyframe.com): org.apache.spark.api.python.PythonException: Traceback (most recent call last):
File "/home/glin/spark-1.6.0/python/lib/pyspark.zip/pyspark/worker.py", line 98, in main
command = pickleSer._read_with_length(infile)
File "/home/glin/spark-1.6.0/python/lib/pyspark.zip/pyspark/serializers.py", line 164, in _read_with_length
return self.loads(obj)
File "/home/glin/spark-1.6.0/python/lib/pyspark.zip/pyspark/serializers.py", line 419, in loads
return pickle.loads(obj, encoding=encoding)
ImportError: No module named 'UserString'
我知道在python3" UserString"不再是模块它是集合模块的一部分。但我无法解决它。有谁可以帮忙????
如果我将我的主节点更改为本地[*],则此错误将消失.....我感到很沮丧
答案 0 :(得分:0)
我知道在python3中“UserString”不再是一个模块,它是collections模块的一部分。但我无法解决它。
为什么不能解决它?而不是
import UserString
你可以尝试吗?
from collections import UserString
答案 1 :(得分:0)
我也遇到了问题,我无法理解的是我找不到UserString模块的导入位置。 然后我发现Yarn集群中的python软件包具有不同的版本。一个是python3.4.5,另一个是python3.4.3。重新安装后,问题解决了。
另外,在我的情况下,直接原因是str和NoneType之间的比较。