2016-12-12 5 views
2

Jupyter 노트북을 통해 PySpark에서 graphFrames를 사용하려고합니다. Spark 클러스터가 HD Insight에 있기 때문에 kernel.json을 수정할 권한이 없습니다.HD Insight에서 Jupyter Notebook과 함께 Spark 패키지 사용

[여기] [1]과 [여기] [2]에서 제안 된 해결책은 효과가 없습니다. 이것이 내가 실행하려고 한 것입니다.

import os 
packages = "graphframes:graphframes:0.3.0-spark2.0" # -s_2.11 
os.environ["PYSPARK_SUBMIT_ARGS"] = (
    "--packages {0} pyspark-shell".format(packages) 
) 
from graphframes import * 

이로 인해 graphframes라는 모듈이 존재하지 않는다는 오류가 발생했습니다. 이 env 변수를 변경 한 후에 새로운 SparkContext를 시작하는 방법이 있습니까?

은 또한 다음 가져 graphframes을 % set_env 마법 명령을 통해 IPython에 PYSPARK_SUBMIT_ARGS 변수를 전달하고 시도했다 :

%set_env PYSPARK_SUBMIT_ARGS='--packages graphframes:graphframes:0.3.0-spark2.0-s_2.11 pyspark-shell' 

from graphframes import * 

하지만이 같은 오류가 발생했습니다.

항아리를 IPython에 전달할 제안이 있지만 HD Insight 클러스터에 필요한 jar를 다운로드하는 방법이 확실하지 않습니다.

의견이 있으십니까?

1) 나는 노트북을 구성하는 잘못된 구문을 사용했다 :

답변

1

내가 두 개의 별도의 문제가 있었다 밝혀졌습니다. 다음을 사용해야합니다.

# For HDInsight 3.3 and HDInsight 3.4 
%%configure 
{ "packages":["com.databricks:spark-csv_2.10:1.4.0"] } 

# For HDInsight 3.5 
%%configure 
{ "conf": {"spark.jars.packages": "com.databricks:spark-csv_2.10:1.4.0" }} 

Here은 Microsoft에서 제공 한 문서입니다.

2) this 유용한 답변에 따르면, 스파크에 버그가있어 패키지의 항아리를 놓칠 수 있습니다. 이 나를 위해 일했다 :

sc.addPyFile(os.path.expanduser('./graphframes_graphframes-0.3.0-spark2.0-s_2.11.jar'))