我使用以下命令创建一个dataproc集群
gcloud dataproc clusters create datascience \
--initialization-actions \
gs://dataproc-initialization-actions/jupyter/jupyter.sh \
但是,当我提交我的PySpark作业时,出现以下错误
异常:worker中的Python版本与驱动程序3.7中的Python版本不同,PySpark无法以其他次要版本运行。请检查环境变量PYSPARK_PYTHON和PYSPARK_DRIVER_PYTHON是否正确设置。
有什么想法吗?
答案 0 :(得分:4)
这是由于master和worker之间的python版本不同。默认情况下,jupyter image
安装最新版本的miniconda,该版本使用python3.7版本。但是,worker仍在使用默认的python3.6。
解决方案: -在创建主节点时指定minoconda版本,即在主节点中安装python3.6
gcloud dataproc clusters create example-cluster --metadata=MINICONDA_VERSION=4.3.30
注意:
答案 1 :(得分:1)
我们现在修复了它-感谢@brotich的中间解决方法。查看#300中的讨论。
PR #306使python的版本与已安装的版本(3.6)相同,并在所有节点上安装软件包,以确保master和worker python环境保持相同。
作为副作用,您可以通过将参数传递给conda init动作来更改python版本,从而选择python版本。例如。 --metadata 'CONDA_PACKAGES="python==3.5"'
。
PR #311将miniconda固定到特定版本(当前为4.5.4),因此我们再次避免了此类问题。您可以使用--metadata 'MINICONDA_VERSION=latest'
来使用总是下载最新的迷你图标的旧行为。
答案 2 :(得分:1)
更新SPARK环境以使用PYTHON 3.7:
打开一个新终端并键入以下命令:export PYSPARK_PYTHON=python3.7
这将确保辅助节点使用Python 3.7(与驱动程序相同)而不是默认的Python 3.4
根据您使用的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
。您应该看到出现了新的环境。