You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

EMR中运行Jupyter PySpark Notebook:已安装模块仍提示找不到

解决EMR集群Jupyter PySpark内核无法识别已安装依赖的问题

方法1:修改PySpark内核配置文件

  • 登录EMR主节点,找到PySpark内核配置文件,默认路径为/usr/share/jupyter/kernels/pyspark/kernel.json
  • 编辑该文件,在env字段中指定集群全局Python解释器路径(需匹配Bootstrap安装依赖的Python环境):
    {
      "display_name": "PySpark",
      "language": "python",
      "argv": [
        "/usr/bin/python3",  // 替换为集群实际的Python路径
        "-m",
        "ipykernel_launcher",
        "-f",
        "{connection_file}"
      ],
      "env": {
        "PYSPARK_PYTHON": "/usr/bin/python3",
        "PYSPARK_DRIVER_PYTHON": "/usr/bin/python3",
        "PATH": "/usr/local/bin:/usr/bin:$PATH"
      }
    }
    
  • 保存后重启Jupyter服务:sudo systemctl restart jupyter-server

方法2:在Notebook中手动指定Python环境

  • 在Notebook首个单元格中添加以下代码,强制PySpark使用集群全局Python环境:
    import os
    os.environ['PYSPARK_PYTHON'] = '/usr/bin/python3'
    os.environ['PYSPARK_DRIVER_PYTHON'] = '/usr/bin/python3'
    
    from pyspark.sql import SparkSession
    spark = SparkSession.builder.appName("DependencyTest").getOrCreate()
    
  • 执行后再尝试导入目标依赖包

方法3:确认Bootstrap Action的安装路径

  • 检查Bootstrap脚本是否使用全局pip安装依赖(而非虚拟环境内的pip),若依赖安装在特定虚拟环境中,需将内核配置中的Python路径替换为虚拟环境的解释器路径,例如虚拟环境路径为/home/hadoop/my_env,则路径改为/home/hadoop/my_env/bin/python

验证配置有效性

  • 重启Jupyter后,运行以下代码确认当前Python环境和已安装包:
    import sys
    print("当前Python路径:", sys.executable)
    import pkg_resources
    print("已安装包列表:", [pkg.key for pkg in pkg_resources.working_set])
    
  • 确认输出的Python路径与Bootstrap安装依赖的路径一致,且包含目标xxxxx包

内容的提问来源于stack exchange,提问作者ezamur

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 04:10:12