0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

久しぶりで pyspark 立ち上げたら No module named 'py4j' と出た件

Last updated at Posted at 2019-08-07

久しぶりで pyspark 立ち上げたら No module named 'py4j' と出た。
で、ぐぐったら、悉く環境変数PYTHONPATHにspark配布物の中の py4j の src zip ファイルを登録しろということだったんだが、やってみると全く改善しない

結局、この件、 ipython が PYTHONPATH から zip を読み込まないことが原因だった。

$ python3.7
Python 3.7.4 (default, Jul  9 2019, 18:13:23) 
[Clang 10.0.1 (clang-1001.0.46.4)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import py4j
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'py4j'
>>> 
$ env PYTHONPATH=$SPARK_HOME/python/lib/py4j-0.10.7-src.zip python3.7
Python 3.7.4 (default, Jul  9 2019, 18:13:23) 
[Clang 10.0.1 (clang-1001.0.46.4)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import py4j
>>> 
$ env PYTHONPATH=$SPARK_HOME/python/lib/py4j-0.10.7-src.zip ipython
Python 3.7.4 (default, Jul  9 2019, 18:13:23) 
Type 'copyright', 'credits' or 'license' for more information
IPython 7.7.0 -- An enhanced Interactive Python. Type '?' for help.

In [1]: import py4j                                                                                                                     
---------------------------------------------------------------------------
ModuleNotFoundError                       Traceback (most recent call last)
<ipython-input-1-cf59b57a4c3e> in <module>
----> 1 import py4j

ModuleNotFoundError: No module named 'py4j'

In [2]:                                                                                                                                 
Do you really want to exit ([y]/n)? y

export PYSPARK_DRIVER_PYTHON=ipython してあったため ipython が動いていた& dot file 書き換えて xterm 起動しても最初に読み込んだ dot file で設定してしまった PYSPARK_DRIVER_PYTHON が引き継がれて、これ殺しても No module named 'py4j' 出るなぁとしばらくハマった。


見つかった例を見るとほぼ全て、 SPARK_HOME を環境変数で設定しているけど、これ PYTHONPATH に展開させるためだけにあって spark 自体は参照していないので正しいんだよな。今まで設定したことないし。
なんかこう仕組みもわからず全部環境変数って辞めませんかね

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?