Google Cloud Dataproc自定义pyspark环境无法作为Jupyter内核访问问题
解决方案
你遇到的问题是Dataproc预装的Jupyter默认绑定base conda环境的内核,不会自动关联你通过environment.yaml创建的自定义pyspark环境,可按照以下步骤配置:
步骤1:将自定义pyspark环境注册为Jupyter内核
- SSH登录集群主节点,执行以下命令激活自定义环境:
conda activate pyspark - 在自定义环境中安装ipykernel依赖:
conda install -y ipykernel - 注册内核到Jupyter:
python -m ipykernel install --user --name pyspark --display-name "Python (Custom PySpark 3.9)"
参数--display-name后的内容可以自定义,为Jupyter内核列表中显示的名称。
步骤2:配置PySpark作业使用自定义环境
如果需要使用PySpark内核跑分布式作业,需要额外配置Spark的Python执行路径,两种方案可选:
方案A:单Notebook临时生效
在Notebook的第一个代码块中添加以下配置,再初始化SparkSession即可:
import os # 指定driver和executor的Python路径 os.environ['PYSPARK_PYTHON'] = '/opt/conda/miniconda3/envs/pyspark/bin/python' os.environ['PYSPARK_DRIVER_PYTHON'] = '/opt/conda/miniconda3/envs/pyspark/bin/python' from pyspark.sql import SparkSession spark = SparkSession.builder \ .config("spark.executorEnv.PYSPARK_PYTHON", "/opt/conda/miniconda3/envs/pyspark/bin/python") \ .getOrCreate()
方案B:集群全局生效
所有Jupyter内核和Spark作业默认使用自定义环境:
- 编辑Spark环境配置文件
/etc/spark/conf/spark-env.sh,在末尾添加两行:
export PYSPARK_PYTHON=/opt/conda/miniconda3/envs/pyspark/bin/python export PYSPARK_DRIVER_PYTHON=/opt/conda/miniconda3/envs/pyspark/bin/python
- 重启Jupyter服务使配置生效:
sudo systemctl restart jupyter.service
验证配置
刷新Jupyter页面,选择新注册的Python (Custom PySpark 3.9)内核,执行以下代码确认环境正确:import sys; print(sys.version, sys.executable)
输出Python版本应为3.9.7,执行路径指向/opt/conda/miniconda3/envs/pyspark/bin/python即为配置成功。
内容的提问来源于stack exchange,提问作者figs_and_nuts
相关产品推荐
相关产品推荐

