web-dev-qa-db-ja.com

python versionが原因でPySpark DataProcジョブの実行中にエラーが発生しました

次のコマンドを使用して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が正しく設定されていることを確認してください。

何かご意見は?

7
Kassem Shehady

これは、マスターとワーカーのpythonバージョンの違いによるものです。デフォルトでは、jupyter image python3.7を使用するminicondaの最新バージョンをインストールします。ただし、ワーカーはまだデフォルトのpython3.6を使用しています。

解決策:-マスターノードの作成時にminicondaのバージョンを指定します。つまり、マスターノードにpython3.6をインストールします

gcloud dataproc clusters create example-cluster --metadata=MINICONDA_VERSION=4.3.30

注意:

  • 環境を管理するためのより持続可能なソリューションを得るために更新が必要になる場合があります
5
brotich

私たちは今それを修正しました-中間の回避策@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'を使用して、常に最新のミニコンダをダウンロードするという古い動作を使用できます。

2

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

  1. 次に、次のように入力して、ライブラリnb_conda_kernelsがあるかどうかを確認します

conda list

nb_conda_kernels

  1. 表示されない場合nb_conda_kernelsタイプ

conda install nb_conda_kernels

インストールnb_conda_kernels

  1. Python 2を使用していて、別のPython 3環境が必要な場合は、次のように入力してください。

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。

  1. pythonのバージョンが正常にインストールされていることを確認し、ターミナルを閉じます。新しいターミナルを開き、pysparkと入力します。新しい環境が表示されるはずです。
1
Robert Singh