Я новичок в установке Spark на машине Linux и, возможно, у меня есть базовый вопрос: я установил Spark версии 1.6.0 и Python 2.6.6.
В интерактивном режиме Spark я могу запускать эти простые команды для подсчета строк в файле README.md.
Однако я хочу иметь возможность создать автономный скрипт Python и достичь того же результата, но получаю ошибки.
Мой код Python в test.py -
#!/usr/bin/python
import pyspark
from pyspark import SparkContext, SparkConf
if __name__ == "__main__":
conf = SparkConf().setAppName("word count").setMaster("local[3]")
sc = SparkContext(conf = conf)
rdd = sc.textFile("/opt/spark/README.md")
print(rdd.count())
Если я запустил это как -
spark-submit ./test.py
Я получаю правильный результат.
95
Мой вопрос в том, почему я не могу запустить это просто ...
./test.py
поскольку я импортирую pyspark и SparkContext в свой скрипт python.
Я получаю ошибку -
Traceback (most recent call last):
File "./test.py", line 8, in <module>
sc = SparkContext(conf = conf)
File "/usr/local/lib/python2.7/site-packages/pyspark/context.py", line 118, in __init__
conf, jsc, profiler_cls)
File "/usr/local/lib/python2.7/site-packages/pyspark/context.py", line 188, in _do_init
self._javaAccumulator = self._jvm.PythonAccumulatorV2(host, port)
TypeError: 'JavaPackage' object is not callable
Я знаю, что мне не хватает где-то добавления банок, согласно моим поискам в Google, но я не думаю, что понимаю, что именно здесь происходит. Я был бы признателен, если бы кто-нибудь мог указать мне на базовое руководство по настройке переменных искры и CLASSPATH.
Я уже читал этот вопрос, но не так подробно -
В чем разница между spark-submit и pyspark?
Спасибо.