私はかなりの依存関係を持つpysparkジョブを持っています。そこで私はpip install -t reqs -r requirements.txt
を実行し、次にreqs
ディレクトリを圧縮しました。私はそれを--py-files
に渡して、すべてのノードで利用できるようにしました。py-filesからのpyspark再帰的インポートzip
zipファイルに正常に見つかったパンダをインポートするファイルがあります。しかし、それはそのzipファイルにもであっても見つからない、パンダの輸入のnumpyの:pandas
がreqs.zip
に発見されたが、numpyのではないこと
File "./spark-job.zip/model/transforms/parser.py", line 3, in <module>
import pandas as pd
File "./reqs.zip/pandas/__init__.py", line 19, in <module>
"Missing required dependencies {0}".format(missing_dependencies))
ImportError: Missing required dependencies ['numpy']
注意。 numpyはzipファイルにあることに注意してください。私はそれがそこにあると確信しています:
$ unzip -l reqs.zip | grep pandas | head -10
0 2017-06-28 20:58 pandas-0.20.2.dist-info/
97277 2017-06-28 20:58 pandas-0.20.2.dist-info/RECORD
109 2017-06-28 20:58 pandas-0.20.2.dist-info/WHEEL
7 2017-06-28 20:58 pandas-0.20.2.dist-info/top_level.txt
1102 2017-06-28 20:58 pandas-0.20.2.dist-info/metadata.json
4 2017-06-28 20:58 pandas-0.20.2.dist-info/INSTALLER
3471 2017-06-28 20:58 pandas-0.20.2.dist-info/DESCRIPTION.rst
4452 2017-06-28 20:58 pandas-0.20.2.dist-info/METADATA
0 2017-06-28 20:58 pandas/
0 2017-06-28 20:58 pandas/formats/
$ unzip -l reqs.zip | grep numpy | head -40
0 2017-06-28 20:58 numpy-1.13.0.dist-info/
52437 2017-06-28 20:58 numpy-1.13.0.dist-info/RECORD
109 2017-06-28 20:58 numpy-1.13.0.dist-info/WHEEL
6 2017-06-28 20:58 numpy-1.13.0.dist-info/top_level.txt
1330 2017-06-28 20:58 numpy-1.13.0.dist-info/metadata.json
4 2017-06-28 20:58 numpy-1.13.0.dist-info/INSTALLER
884 2017-06-28 20:58 numpy-1.13.0.dist-info/DESCRIPTION.rst
2217 2017-06-28 20:58 numpy-1.13.0.dist-info/METADATA
22668 2017-06-28 20:58 sklearn/externals/joblib/numpy_pickle_utils.py
8440 2017-06-28 20:58 sklearn/externals/joblib/numpy_pickle_compat.py
23222 2017-06-28 20:58 sklearn/externals/joblib/numpy_pickle.py
7468 2017-06-28 20:58 sklearn/externals/joblib/__pycache__/numpy_pickle_compat.cpython-34.pyc
16545 2017-06-28 20:58 sklearn/externals/joblib/__pycache__/numpy_pickle_utils.cpython-34.pyc
15643 2017-06-28 20:58 sklearn/externals/joblib/__pycache__/numpy_pickle.cpython-34.pyc
10508 2017-06-28 20:58 scipy/_lib/__pycache__/_numpy_compat.cpython-34.pyc
11513 2017-06-28 20:58 scipy/_lib/_numpy_compat.py
0 2017-06-28 20:58 pandas/compat/numpy/
12344 2017-06-28 20:58 pandas/compat/numpy/function.py
0 2017-06-28 20:58 pandas/compat/numpy/__pycache__/
2399 2017-06-28 20:58 pandas/compat/numpy/__pycache__/__init__.cpython-34.pyc
10150 2017-06-28 20:58 pandas/compat/numpy/__pycache__/function.cpython-34.pyc
2213 2017-06-28 20:58 pandas/compat/numpy/__init__.py
0 2017-06-28 20:58 numpy/
0 2017-06-28 20:58 numpy/.libs/
38513408 2017-06-28 20:58 numpy/.libs/libopenblasp-r0-39a31c03.2.18.so
1023960 2017-06-28 20:58 numpy/.libs/libgfortran-ed201abd.so.3.0.0
0 2017-06-28 20:58 numpy/testing/
2705 2017-06-28 20:58 numpy/testing/print_coercion_tables.py
8036 2017-06-28 20:58 numpy/testing/decorators.py
75541 2017-06-28 20:58 numpy/testing/utils.py
19120 2017-06-28 20:58 numpy/testing/nosetester.py
13834 2017-06-28 20:58 numpy/testing/noseclasses.py
0 2017-06-28 20:58 numpy/testing/__pycache__/
713 2017-06-28 20:58 numpy/testing/__pycache__/__init__.cpython-34.pyc
9827 2017-06-28 20:58 numpy/testing/__pycache__/noseclasses.cpython-34.pyc
8572 2017-06-28 20:58 numpy/testing/__pycache__/decorators.cpython-34.pyc
67010 2017-06-28 20:58 numpy/testing/__pycache__/utils.cpython-34.pyc
2712 2017-06-28 20:58 numpy/testing/__pycache__/print_coercion_tables.cpython-34.pyc
15253 2017-06-28 20:58 numpy/testing/__pycache__/nosetester.cpython-34.pyc
805 2017-06-28 20:58 numpy/testing/__pycache__/setup.cpython-34.pyc
なぜこれが正しく動作しないのでしょうか?