2017-12-08 14 views
1

Spark 클러스터 (원사 포함)에서 jupyter-notebook을 실행 중입니다. 노트북을 설정하기 위해 "findspark"패키지를 사용하고 있으며 완벽하게 작동합니다 (SSH 터널을 통해 클러스터 마스터에 연결). "독립적 인"노트북을 쓸 때 완벽하게 작동합니다. 다음 코드는 문제없이 실행됩니다.Spark 클러스터에서 jupyter 노트북 용 파이썬 파일 지정

import findspark 
findspark.init() 

import pyspark 

sc = pyspark.SparkContext(appName='myApp') 
a = sc.range(1000,numSlices=10) 
a.take(10) 
sc.stop() 

Spark 작업은 작업자에게 완벽하게 배포됩니다. 그러나 내가 쓴 파이썬 패키지를 사용하고 싶다면 파일에 직원이 없습니다.

내가 Jupyter 노트북을 사용하고 난 사용할 때 --py-파일 myPackageSrcFiles.zip --master 실을 스파크를 제출하고 있지 않다 때, 내 스파크 작업이 작동 잘, 예를 들어, 다음 코드는 제대로 실행 :

main.py

import pyspark 
from myPackage import myFunc 

sc = pyspark.SparkContext(appName='myApp') 
a = sc.range(1000,numSlices=10) 
b = a.map(lambda x: myFunc(x)) 
b.take(10) 
sc.stop() 

그런

spark-submit --master yarn --py-files myPackageSrcFiles.zip main.py 

문제는입니다 : 어떻게 jupyter 노트북에서 main.py를 실행하려면? 나는 pyfiles으로 키워드를 SparkContext에서 한 .zip 패키지를 지정하려하지만 난이 pyfiles으로 키워드를 SparkContext에서 한 .zip 패키지를 지정하려고 오류 ...

답변

1

을 가지고 있지만 나는있어 오류

이 낙타 경우입니다 :

sc = pyspark.SparkContext(appName='myApp', pyFiles=["myPackageSrcFiles.zip"]) 

또는 수 addPyFile

sc.addPyFile("myPackageSrcFiles.zip") 
+0

실제로 pyFiles에는 목록이 필요합니다 ... – ma3oun