誰かが私のようにこれに遭遇し、クラスターで作業しているが、ターゲットノードでローカルスクリプトを実行する必要がある場合 。
解決策
最も簡単な解決策は、スクリプトの最初にPYSPARK_PYTHON envを設定することです。私の場合、$SPARK_HOME/conf/spark-env.sh
で適切に構成されていても、pyspark-shellはそれを取得できませんでした。 またはspark-defaults.conf
でも および~/.bashrc
(どちらも最初のオプションよりも望ましくありません)。
import os
os.environ['PYSPARK_PYTHON'] = '/path/to/python3' # Worker executable
os.environ['PYSPARK_DRIVER_PYTHON'] = '/path/to/python3' # Driver executable
考えられる原因
完全にはわかりませんが、venvのpipからインストールされたpysparkは、Spark自体によって実際にロードされたものとは異なり、正しいenv変数が見つからず、構成されているにもかかわらず、デフォルトのpython2.7実行可能ファイルに頼っていると思います。どこでも。