私は大きなクラスター(管理権限がない)でSparkプログラムを実行しています。 numpy
がワーカーノードにインストールされていません。したがって、私は私のプログラムでnumpy
をバンドルしたが、私は次のエラーを取得する:ナンシーでスタティックなリンク
Traceback (most recent call last):
File "/home/user/spark-script.py", line 12, in <module>
import numpy
File "/usr/local/lib/python2.7/dist-packages/numpy/__init__.py", line 170, in <module>
File "/usr/local/lib/python2.7/dist-packages/numpy/add_newdocs.py", line 13, in <module>
File "/usr/local/lib/python2.7/dist-packages/numpy/lib/__init__.py", line 8, in <module>
File "/usr/local/lib/python2.7/dist-packages/numpy/lib/type_check.py", line 11, in <module>
File "/usr/local/lib/python2.7/dist-packages/numpy/core/__init__.py", line 6, in <module>
ImportError: cannot import name multiarray
スクリプトは実際には非常に簡単です:
from pyspark import SparkConf, SparkContext
sc = SparkContext()
sc.addPyFile('numpy.zip')
import numpy
a = sc.parallelize(numpy.array([12, 23, 34, 45, 56, 67, 78, 89, 90]))
print a.collect()
numpy
が動的multiarray.so
依存関係をロードするので、私はエラーが発生したことを理解し、 numpy.zip
ファイルにmultiarray.so
ファイルが含まれていても、何とか動的ロードがApache Spark
で機能しません。なぜそうなのか?そして、どうやって静的リンクを持つスタンドアロンのnumpy
モジュールを作成していますか?
ありがとうございました。
あなたはzipファイルを作成する方法を示してもらえますか? – zero323
@ zero323: 'zip -r〜/ numpy.zip/usr/local/lib/python2.7/dist-packages/numpy' – abhinavkulkarni
既存のインストールをコピーしようとしていますか?'須藤はapt-getをインストールのpython-numpy':はい、既存の' numpy'のインストールには、コマンドを実行して、 'Ubuntu'マシンにインストールされました: – zero323