SparkSession 和上下文混淆

Posted

技术标签:

【中文标题】SparkSession 和上下文混淆【英文标题】:SparkSession and context confusion 【发布时间】:2016-12-21 16:08:57 【问题描述】:

我有一个 pyspark 2.0.0 脚本,其中定义了以下会话:

spark = SparkSession \
    .builder \
    .appName("Python Spark") \
    .master("local[*]")\
    .config("spark.some.config.option", "some-value") \
    .getOrCreate()

我训练了一个随机森林模型,我想保存它。因此我调用以下方法:

model_rf.save( spark, "/home/Desktop")

但它会引发以下编译错误:

TypeError: sc should be a SparkContext, got type <class 'pyspark.sql.session.SparkSession'>

当我定义 Spark 上下文时,如下所示:

from pyspark import SparkContext
sc =SparkContext()
model_rf.save( sc, "/home/Desktop")

我收到错误:

Cannot run multiple SparkContexts at once; existing SparkContext(app=Python Spark, master=local[*]) created by getOrCreate at <ipython-input-1-c5f83810f880>:24 

【问题讨论】:

【参考方案1】:

使用spark.sparkContext(SparkSession 对象将有sparkContext)

model_rf.save( spark.sparkContext, "/home/Desktop")

【讨论】:

以上是关于SparkSession 和上下文混淆的主要内容,如果未能解决你的问题,请参考以下文章

上下文操作栏与工具栏操作混淆

代码混淆和运行时行为更改

Visual Studio 设计器和工具箱混淆

InheritedWidget 混淆

线程化核心数据混淆实现

为 Proguard 指定类名以避免混淆