sc 未在 SparkContext 中定义

Posted

技术标签:

【中文标题】sc 未在 SparkContext 中定义【英文标题】:sc is not defined in SparkContext 【发布时间】:2018-02-13 07:35:03 【问题描述】:

我的 Spark 包是 spark-2.2.0-bin-hadoop2.7。

我将 spark 变量导出为

export SPARK_HOME=/home/harry/spark-2.2.0-bin-hadoop2.7
export PATH=$SPARK_HOME/bin:$PATH

我用

打开了spark notebook
pyspark

我可以从 spark 加载包

from pyspark import SparkContext, SQLContext
from pyspark.ml.regression import LinearRegression
print(SQLContext)

输出是

<class 'pyspark.sql.context.SQLContext'>

但我的错误是

print(sc)
"sc is undefined"

请谁能帮帮我...!

【问题讨论】:

您是否创建了火花上下文的实例?你需要创建火花上下文。 我还没有。我对火花很陌生,请你告诉我怎么做...! ** sqlContext = SQLContext(sc) **。我这样做了。但我仍然遇到同样的错误,sc 没有定义 【参考方案1】:

pysparkShell 中,SparkContext 已经初始化为 SparkContext(app=PySparkShell, master=local[*]),因此您只需使用 getOrCreate()SparkContext 设置为变量

sc = SparkContext.getOrCreate()
sqlContext = SQLContext(sc)

为了在简单的本地模式中进行编码,您可以执行以下操作

from pyspark import SparkConf, SparkContext, SQLContext

conf = SparkConf().setAppName("test").setMaster("local")
sc = SparkContext(conf=conf)
sqlContext = SQLContext(sc)
print(sc)
print(sqlContext)

【讨论】:

非常感谢您的回复..但我收到此错误****无法一次运行多个 SparkContexts;由 在 /home/harry/anaconda3/lib/python3.6/site-packages/IPython/utils/py3compat.py:186 创建的现有 SparkContext(app=PySparkShell, master=local[*]) **** 谢谢..!它工作得很好..!现在我可以直接使用这个 sc 来加载一个 csv 文件吗? 很高兴听到@HarishBodduna :) 遇到了另一个问题..! 加载 csv 文件时,出现此错误..! data = spark.read.format("csv").load("/home/harry/Music/classification3.csv") 错误:名称'spark'未定义

以上是关于sc 未在 SparkContext 中定义的主要内容,如果未能解决你的问题,请参考以下文章

如何从 PySpark 中的 JavaSparkContext 获取 SparkContext?

Zeppelin:如何在 zeppelin 中重新启动 sparkContext

SPARK 创建新任务

SparkContext主构造函数代码提取

Spark 临时表未在直线中显示

数据对象未在 Svelte 组件中呈现