我的Spark包是spark-2.2.0-bin-hadoop2.7。
我导出的Spark变量如下:
export SPARK_HOME=/home/harry/spark-2.2.0-bin-hadoop2.7export PATH=$SPARK_HOME/bin:$PATH
我通过以下命令打开了Spark笔记本:
pyspark
我能够从Spark加载包:
from pyspark import SparkContext, SQLContextfrom pyspark.ml.regression import LinearRegressionprint(SQLContext)
输出是
<class 'pyspark.sql.context.SQLContext'>
但我的错误是
print(sc)"sc is undefined"
请问有人能帮我解决这个问题吗…!
回答:
在pysparkShell中,SparkContext
已经被初始化为SparkContext(app=PySparkShell, master=local[*])
,所以你只需要使用getOrCreate()
来将SparkContext
设置到一个变量中,如下所示:
sc = SparkContext.getOrCreate()sqlContext = SQLContext(sc)
对于在简单的本地模式下的编码目的,你可以执行以下操作:
from pyspark import SparkConf, SparkContext, SQLContextconf = SparkConf().setAppName("test").setMaster("local")sc = SparkContext(conf=conf)sqlContext = SQLContext(sc)print(sc)print(sqlContext)