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

AWS EMR Notebook调用list_packages报SparkContext无属性错误求解

报错原因定位

你使用的emr-5.20.0版本对应Spark 2.4.0,list_packages()是Spark 3.0.0及以上版本才新增的PySpark SparkContext API,你参照的AWS官方方案默认适配更高版本的EMR集群(对应Spark 3.x),直接在低版本环境执行就会触发属性不存在的报错。

适配Spark 2.4.0的操作方案
  • 查看当前Notebook会话已安装的Python包
    直接执行shell命令即可:
    !pip list
    
    如果需要查看集群全局加载的Jar包,可执行如下代码:
    sc._jsc.sc().listJars()
    
  • 临时为当前会话安装Python包
    Spark 2.4.0支持install_pypi_packageAPI完成临时包安装,安装的包仅在当前Notebook会话生效:
    # 安装指定包,示例安装pandas 1.1.5版本
    sc.install_pypi_package("pandas==1.1.5")
    # 卸载指定包
    sc.uninstall_package("pandas")
    
  • 永久为集群安装包
    如需所有集群任务都可以调用对应包,可在创建EMR集群时添加Bootstrap引导脚本,在所有核心节点、任务节点的Python环境中预安装需要的依赖包。
修正后的测试代码
from pyspark.sql import SparkSession
from pyspark import SparkConf, SparkContext

spark = SparkSession.builder.getOrCreate()
sc = SparkContext.getOrCreate()

# 临时安装示例包
sc.install_pypi_package("requests")
# 验证安装结果
!pip show requests

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 20:36:05