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

GCP Dataproc Jupyter中创建新Spark Context后无法正常使用的问题

解决GCP Dataproc Jupyter Notebook中Spark Context更新后spark对象失效问题

问题核心是:默认的spark(SparkSession对象)仍关联着已停止的旧SparkContext,仅重新创建SparkContext无法让spark指向新的上下文,需同步创建新的SparkSession绑定新Context。

正确操作步骤:

  1. 停止旧的SparkContext和SparkSession
    不仅要停止SparkContext,还要停止对应的SparkSession,彻底切断旧绑定关系:

    import pyspark
    
    # 停止旧的SparkSession和SparkContext
    spark.stop()
    sc.stop()
    
  2. 配置新参数并创建全新上下文
    先定义包含内存优化参数的配置,再依次创建新的SparkContext和SparkSession:

    # 配置Spark参数,可按需添加更多内存相关项
    conf = pyspark.SparkConf().setAll([
        ('spark.driver.maxResultSize', '8g'),
        ('spark.driver.memory', '16g'),  # 按需调整Driver内存上限
        ('spark.executor.memory', '16g') # 按需调整Executor内存上限
    ])
    
    # 创建新的SparkContext
    sc = pyspark.SparkContext(conf=conf)
    # 基于新Context创建SparkSession
    spark = pyspark.sql.SparkSession(sc)
    
  3. 验证新上下文有效性
    执行读取操作测试:

    data = spark.read.parquet('数据存储桶链接')
    

额外提示:

  • 若仅需调整Spark配置,更推荐在启动Dataproc集群时通过集群初始化参数设置(如--properties spark.driver.maxResultSize=8g),避免在Notebook中重启上下文的操作风险。
  • 重启上下文后,所有之前缓存的RDD、DataFrame数据都会被清除,需重新加载或计算。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 00:45:13