我想在Jupyter笔记本上读一个Spark Avro文件。
我已经把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笔记本时都给包下命令。例如,如果我必须使用Spark-csv包,我就会这样做
pyspark在终端中,它打开了一个jupyter笔记本电脑与火花-csv封装。我不需要特别为spark-csv给出包命令。
但这似乎对spark-avro不起作用。
注: 1)。我已经在配置设置中将iphython/jupyter notebook命令配置为" 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有什么帮助吗?
发布于 2017-02-07 10:04:53
正确的属性名称是spark.jars.packages (而不是spark-jars.packages),多个包应该作为一个逗号分隔的列表提供,与命令行参数相同。
您还应该使用相同的Scala工件,它与用于构建Spark二进制文件的Scala版本相匹配。例如,使用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.0https://stackoverflow.com/questions/42079846
复制相似问题