2017-02-07 3 views
1

Jupyter 노트북의 Spark Avro 파일을 읽고 싶습니다.Pyspark 커널이있는 Jupyter 노트북의 Spark Avro 파일 읽기

나는 스파크 - 아브로를 만들었습니다.

나는

pyspark --packages org.apache.avro:avro-mapred:1.7.7,com.databricks:spark-avro_2.10:2.0.1 

브라우저에서 jupyter 노트북을 열 수 있고 내가 다음 명령을 실행하고 제대로 읽고 다음 내 디렉토리로 이동 않습니다.

sdf_entities = sqlContext.read.format("com.databricks.spark.avro").load("learning_entity.avro") 
sdf_entities.cache().take(1) 

그러나 pyspark 노트북을 열 때마다 packages 명령을 제공하고 싶지 않습니다. 나는 불꽃-CSV 패키지를 사용하는 경우처럼 난 그냥 터미널에서

pyspark 

을하고는 스파크 CSV 패키지에 jupyter 노트북을 엽니 다. spark-csv 패키지 명령을 특별히 제공 할 필요는 없습니다.

하지만 이것은 spark-avro에서 작동하지 않는 것 같습니다.

참고 : 1). 구성 설정에서 iphython/jupyter 노트북 명령을 "pyspark"로 구성 했으므로 pyspark가 터미널에서 호출 될 때마다 자동으로 jyupyter 노트북을 엽니 다.

2). spark-conf 폴더에있는 spark-conf 파일에 spark-csv와 spark-avro 경로를 추가했습니다. 다음은 spark-defaults.conf 파일의 모습입니다.

# Example: 
# spark.master      spark://master:7077 
# spark.eventLog.enabled   true 
# spark.eventLog.dir    hdfs://namenode:8021/directory 
# spark.serializer     org.apache.spark.serializer.KryoSerializer 
spark.driver.memory    12g 
spark.executor.memory   3g 
spark.driver.maxResultSize  3g 
spark.rdd.compress    false 
spark.storage.memoryFraction  0.5 


spark.executor.extraJavaOptions -XX:+PrintGCDetails -Dkey=value 

spark.jars.packages com.databricks:spark-csv_2.11:1.4.0 
spark-jars.packages com.databricks:spark-avro_2.10:2.0.1 

도움이 필요하십니까?

답변

1

올바른 속성 이름은 spark.jars.packages (spark-jars.packages이 아님)이고 여러 패키지는 명령 줄 인수와 마찬가지로 쉼표로 구분 된 단일 목록으로 제공되어야합니다.

Spark 바이너리를 빌드하는 데 사용 된 스칼라 버전과 일치하는 동일한 스칼라 아티팩트도 사용해야합니다. Scala 2.10 (예 : Spark 1.x의 기본값) :

spark.jars.packages com.databricks:spark-avro_2.10:2.0.1,com.databricks:spark-csv_2.10:1.5.0 
관련 문제