【发布时间】:2017-10-23 18:11:17
【问题描述】:
我有一个脚本wordcount.py
我使用 setuptools 创建了一个名为 wordcount 的入口点,因此现在我可以从系统中的任何位置调用该命令。
我正在尝试通过 spark-submit(命令:spark-submit wordcount)执行它,但它失败并出现以下错误:
Error: Cannot load main class from JAR file:/usr/local/bin/wordcount
Run with --help for usage help or --verbose for debug output
但是,当我提供 python 脚本的路径时,完全相同的命令可以正常工作(命令:spark-submit /home/ubuntu/wordcount.py)
wordcount.py 的内容
import sys
from operator import add
from pyspark.sql import SparkSession
def main(args=None):
if len(sys.argv) != 2:
print("Usage: wordcount <file>", file=sys.stderr)
exit(-1)
spark = SparkSession\
.builder\
.appName("PythonWordCount")\
.getOrCreate()
lines = spark.read.text(sys.argv[1]).rdd.map(lambda r: r[0])
counts = lines.flatMap(lambda x: x.split(' ')) \
.map(lambda x: (x, 1)) \
.reduceByKey(add)
output = counts.collect()
for (word, count) in output:
print("%s: %i" % (word, count))
spark.stop()
if __name__ == "__main__":
main()
你知道有没有办法绕过这个?
提前非常感谢。
【问题讨论】:
标签: python apache-spark entry-point spark-submit