我刚开始在Linux机器上安装spark,可能有一个基本问题:我已经安装了Spark版本1.6.0和Python 2.6.6
在spark交互模式下,我可以运行这些简单的命令来计算README.md文件中的行数。
然而,我希望能够创建一个独立的Python脚本并实现相同的结果,但我得到了错误。
我在test.py中的python代码-
#!/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
因为我在我的python脚本中导入了pyspark和SparkContext。
我得到了错误-
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
根据我在谷歌上的搜索,我知道我错过了在某个地方添加一些罐子,但我不认为我明白这里到底发生了什么。如果有人能给我一个关于如何设置spark变量和CLASSPATH的基本教程,我将不胜感激。
我已经读过这个问题了,但它没有那么详细-
What is the difference between spark-submit and pyspark?
谢谢。
发布于 2018-06-04 01:51:24
user8371915-你给我指出了正确的方向,这是一个根本没有设置PYTHONPATH的问题。
我发现这个链接涵盖了我需要的所有信息,并且能够让我的代码运行-
./test.py
95
https://stackoverflow.com/questions/50663129
复制相似问题