次のコマンドを使用してdataprocクラスタを作成します
gcloud dataproc clusters create datascience \
--initialization-actions \
gs://dataproc-initialization-actions/jupyter/jupyter.sh \
しかし、PySparkジョブを送信すると、次のエラーが発生しました
例外:Pythonワーカーのバージョン3.4はドライバー3.7と異なるため、PySparkは異なるマイナーバージョンで実行できません。環境変数PYSPARK_PYTHONおよびPYSPARK_DRIVER_PYTHONが正しく設定されていることを確認してください。
何かご意見は?
これは、マスターとワーカーのpythonバージョンの違いによるものです。デフォルトでは、jupyter image
python3.7を使用するminicondaの最新バージョンをインストールします。ただし、ワーカーはまだデフォルトのpython3.6を使用しています。
解決策:-マスターノードの作成時にminicondaのバージョンを指定します。つまり、マスターノードにpython3.6をインストールします
gcloud dataproc clusters create example-cluster --metadata=MINICONDA_VERSION=4.3.30
注意:
私たちは今それを修正しました-中間の回避策@brotichに感謝します。 #3 の議論をチェックしてください。
PR #306 pythonが既にインストールされているのと同じバージョン(3.6)を維持し、すべてのノードにパッケージをインストールして、マスターとワーカーがpython環境は同じままです。
副作用として、conda initアクションに引数を渡してpythonバージョンを変更することで、pythonバージョンを選択できます。例:--metadata 'CONDA_PACKAGES="python==3.5"'
。
PR #311 minicondaを特定のバージョン(現在は4.5.4)に固定するため、このような問題は再び回避されます。 --metadata 'MINICONDA_VERSION=latest'
を使用して、常に最新のミニコンダをダウンロードするという古い動作を使用できます。
SPARK使用する環境PYTHON 3.7:
新しいターミナルを開き、次のコマンドを入力します:export PYSPARK_PYTHON=python3.7
これにより、ワーカーノードがデフォルトのPython 3.4ではなく)Python 3.7(Driverと同じ))を使用することが保証されます
PYTHONのバージョンに依存しているため、ANACONDAをインストール/更新する必要がある場合があります。
(インストールするには、以下を参照してください: https://www.digitalocean.com/community/tutorials/how-to-install-anaconda-on-ubuntu-18-04-quickstart )
Anaconda 4.1.0以降がインストールされていることを確認してください。新しいターミナルを開き、新しいターミナルに入力してcondaのバージョンを確認します。
conda --version
condaバージョンをチェックしています
anaconda 4.1.0未満の場合は、conda update conda
conda list
nb_conda_kernels
nb_conda_kernels
タイプconda install nb_conda_kernels
インストールnb_conda_kernels
conda create -n py36 python=3.6 ipykernel
py35は環境の名前です。文字通り、好きな名前を付けることができます。
または、Python 3を使用していて、別のPython 2環境が必要な場合は、次のように入力します。
conda create -n py27 python=2.7 ipykernel
py27は環境の名前です。 python 2.7。
pyspark
と入力します。新しい環境が表示されるはずです。