2017-10-23 8 views
-1

파이썬 진입 점으로 스파크 제출합니다.
나는 (명령 spark-submit wordcount)를 스파크가 제출을 통해 그것을 실행하려고하지만, 다음과 같은 오류와 함께 실패 :그래서 지금은 어디서나 시스템에서 명령을 호출 할 수 있습니다, 내가 <code>wordcount</code>라는 진입 점을 만들 setuptools에 사용 <code>wordcount.py</code><br> 스크립트를

Error: Cannot load main class from JAR file:/usr/local/bin/wordcount Run with --help for usage help or --verbose for debug output

내가 파이썬의 경로를 제공 할 때 동일한 명령이 잘 작동하지만 스크립트 (명령 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() 

는 당신이 우회하는 방법이 있는지 알고 계십니까?
미리 감사드립니다.

답변

0

spark-submit wordcount을 실행하면 wordcount가 실행될 클래스가있는 jar 파일로 취급됩니다.
또한 클래스 경로를 지정하지 않았으므로 경로 /usr/local/bin에서 jar을 찾습니다.
wordcount 파일의 내용을 입력하십시오. 가능하면 spark-submit으로 실행하는 동안 wordcount 경로를 지정하십시오.

자세한 정보는이 링크를 확인하십시오. spark-submit 명령 : https://spark.apache.org/docs/latest/submitting-applications.html