ImportError:没有名为' UserString'在pyspark

时间:2016-08-02 18:23:20

标签: python apache-spark mapreduce pyspark

当我在群集上使用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"不再是模块它是集合模块的一部分。但我无法解决它。有谁可以帮忙????

如果我将我的主节点更改为本地[*],则此错误将消失.....我感到很沮丧

2 个答案:

答案 0 :(得分:0)

  

我知道在python3中“UserString”不再是一个模块,它是collections模块的一部分。但我无法解决它。

为什么不能解决它?而不是

import UserString
你可以尝试

吗?
from collections import UserString

答案 1 :(得分:0)

我也遇到了问题,我无法理解的是我找不到UserString模块的导入位置。 然后我发现Yarn集群中的python软件包具有不同的版本。一个是python3.4.5,另一个是python3.4.3。重新安装后,问题解决了。

另外,在我的情况下,直接原因是str和NoneType之间的比较。