PySpark 可以使用 numpy 数组吗?

Rom*_*man 5 python numpy apache-spark pyspark

我尝试在 pyspark 会话中执行以下命令:

>>> a = [1,2,3,4,5,6,7,8,9,10]
>>> da = sc.parallelize(a)
>>> da.reduce(lambda a, b: a + b)
Run Code Online (Sandbox Code Playgroud)

效果很好。我得到了预期的答案(55)。现在我尝试做同样的事情,但使用 numpy 数组而不是 Python 列表:

>>> import numpy
>>> a = numpy.array([1,2,3,4,5,6,7,8,9,10])
>>> da = sc.parallelize(a)
>>> da.reduce(lambda a, b: a + b)
Run Code Online (Sandbox Code Playgroud)

结果我得到了很多错误。更具体地说,我在错误消息中多次看到以下错误:

ImportError: No module named numpy.core.multiarray
Run Code Online (Sandbox Code Playgroud)

是不是我的集群没有安装某些东西,或者 pyspark 无法在基本层面上使用 numpy 数组?

Oba*_*aid 0

我有类似的问题。我执行了以下操作并解决了问题:

pip uninstall numpy
pip install numpy
pip install nose
Run Code Online (Sandbox Code Playgroud)