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

在IBM Cloud Pak的Jupyter中使用PySpark遇弃用警告求助

解决PySpark中SQLContext弃用警告的修改方案

问题原因

PySpark 3.0及以上版本中,SQLContext(sc)的初始化方式已被废弃,官方推荐使用SparkSession统一管理Spark上下文环境,它整合了原SparkContext和SQLContext的全部功能。

修改步骤

  1. 替换导入语句:移除SparkContext和SQLContext的导入,添加SparkSession的导入。
  2. 创建SparkSession实例:用SparkSession.builder.getOrCreate()替代手动创建sc和sqlContext的逻辑,该方法会自动复用已存在的会话或创建新会话。
  3. 调整上下文引用:后续需要SparkContext时,通过spark.sparkContext获取;SQL相关操作直接使用spark实例即可。

修改后的完整代码

from pyspark.ml import Pipeline
from pyspark.ml.classification import LogisticRegression
from pyspark.ml.feature import HashingTF, Tokenizer
from pyspark.sql import Row, SparkSession  # 替换SQLContext为SparkSession

import os
import sys
from pyspark.sql.types import *

from pyspark.mllib.classification import LogisticRegressionWithSGD
from pyspark.mllib.regression import LabeledPoint
from numpy import array

from pyspark.ml.evaluation import MulticlassClassificationEvaluator
# Library for confusion matrix, precision, test error
from pyspark.mllib.evaluation import MulticlassMetrics
# Library For Area under ROC curve and Area under precision-recall curve
from pyspark.mllib.evaluation import BinaryClassificationMetrics

# 创建SparkSession实例,替代原有的sc和sqlContext初始化
spark = SparkSession.builder.getOrCreate()

# 若需要使用SparkContext,可通过以下方式获取
# sc = spark.sparkContext

# packages for data analysis
import numpy as np
import pandas as pd

额外说明

  • 原代码中重复导入了SQLContext,修改时一并移除冗余导入。
  • 后续代码中如果有依赖sqlContext的操作,直接替换为spark即可,例如原sqlContext.read.csv(...)改为spark.read.csv(...)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 05:52:48