纱线的火花' sc'没有定义的

时间:2015-06-05 19:36:30

标签: python apache-spark apache-spark-sql

我正在使用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

在那条线上。

有什么想法吗?

2 个答案:

答案 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)