2015-06-05 1 views
4

Я использую искру 1.3.1.искры в пряжке-cluser 'sc' не определено

Должен ли я объявлять sc, когда искра запускается в режиме кладки пряжи? У меня нет проблем с запуском одной и той же программы python в оболочке искрового python.

Вот как я представляю работу:

/bin/spark-submit --master yarn-cluster test.py --conf conf/spark-defaults.conf 

где искрового дефолт я декларировать где spark.yarn.jar есть также проверить разрешение на где spark.yarn.jar есть и /user/admin, искра пользователь, чтобы сделать там read-write-execute для всех.

В моей программе test.py, у меня есть from pyspark.sql import SQLContext и первая линия

sqlctx=SQLContext(sc) 

и ошибка

NameError: name 'sc' is not defined 

на этой линии.

Любая идея?

+0

исправления с моим сообщением: попробовал это: ./bin/spark-submit --master jarn-cluster --conf spark.yarn.jar = hdfs: // : 9000/share/spark-assembly-1.3.0 -hadoop2.4.1.jar test.py ... также попробовал это ./bin/spark-submit --master yarn-cluster --conf conf/spark-defaults.conf test.py – Tara

+0

В отличие от сайтов на форуме мы не используйте «Спасибо», или «Любая помощь оценена», или подписи на [so]. См. «[Должны ли« Привет »,« спасибо », теги и приветствия удалены из сообщений?] (Http://meta.stackexchange.com/questions/2950/should-hi-thanks-taglines-and-salutations-be «Спасибо заранее», а не «Спасибо в продвинутом». –

ответ

10

sc является вспомогательным значением, созданным в spark-shell, но не автоматически создается с spark-submit. Вы должны создать экземпляр самостоятельно SparkContext и использовать это

conf = SparkConf().setAppName(appName) 
sc = SparkContext(conf=conf) 
+0

спасибо. Тогда мой переход параметра «conf» в команде submit бесполезен, если я создаю еще один «conf», ? – Tara

+0

Нет, файл conf используется, если в коде ничего не задано. Кроме того, если это помогло вам, то не забудьте принять и упредить :) –

15

Это то, что работает для меня:

from pyspark import SparkConf, SparkContext 
from pyspark.sql import SQLContext 

conf = SparkConf().setAppName("building a warehouse") 
sc = SparkContext(conf=conf) 
sqlCtx = SQLContext(sc) 

Надеется, что это помогает.