我正在使用spark 1.3.1。
在纱线群集模式下火花运行时,我是否必须声明sc?我在spark python shell中运行相同的python程序没有问题。
这是我提交作业的方式:
/bin/spark-submit --master yarn-cluster test.py --conf conf/spark-defaults.conf
在spark-defaults中我确实声明了spark.yarn.jar
的位置,还检查了spark.yarn.jar
所在的权限和/user/admin
(火花用户),以使其具有读写权限为所有人执行。
在我的test.py
计划中,我有from pyspark.sql import SQLContext
,第一行是
sqlctx=SQLContext(sc)
,错误是
NameError: name 'sc' is not defined
在那条线上。
有什么想法吗?
答案 0 :(得分:17)
这对我有用:
from pyspark import SparkConf, SparkContext
from pyspark.sql import SQLContext
conf = SparkConf().setAppName("building a warehouse")
sc = SparkContext(conf=conf)
sqlCtx = SQLContext(sc)
希望这有帮助。
答案 1 :(得分:11)
sc
是在spark-shell
中创建的辅助值,但不会使用spark-submit
自动创建。您必须实例化自己的SparkContext
并使用
conf = SparkConf().setAppName(appName)
sc = SparkContext(conf=conf)