📜  类型对象“SparkContext”没有属性“_jsc” - Python (1)

📅  最后修改于: 2023-12-03 15:27:27.158000             🧑  作者: Mango

类型对象“SparkContext”没有属性“_jsc” - Python

这个错误通常发生在使用PySpark时,由于代码中SparkContext对象的版本与PySpark的版本不兼容导致的。在PySpark v2.0及更高版本中,_jsc属性已被弃用,应使用_sparkContext属性替换。

下面是一个例子,解释了如何解决这个错误:

from pyspark.sql import SparkSession

spark = SparkSession.builder \
    .appName("Example") \
    .getOrCreate()

sc = spark.sparkContext

# 获取Spark版本号
print("Spark Version:", sc.version)

# 获取Spark web UI URL
print("Spark UI URL:", sc.uiWebUrl)

# 获取当前Spark应用程序的ID
print("Application ID:", sc.applicationId)

# 使用Spark上下文执行RDD操作
rdd = sc.parallelize([1, 2, 3, 4, 5])
print(rdd.collect())

在这里,我们首先使用SparkSession对象创建SparkContext。然后,我们从spark对象中获取SparkContext并使用它来执行RDD操作。

请注意,我们使用的属性是_sparkContext而不是_jsc。

例如:

sc = spark.sparkContext

而不是:

sc = spark._sc

因为版本不兼容而引起此类错误时,建议升级到最新版本的PySpark和Spark。