python - 使用 Pyspark Kernel 读取 Jupyter Notebook 中的 Spark Avro 文件

标签 python apache-spark pyspark

我想在 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 笔记本时都给出 packages 命令。就像如果我必须使用 Spark-csv 包我就会这样做

pyspark

在终端中,它会打开一个带有spark-csv包的jupyter笔记本。我不必在那里专门给出spark-csv 的packages 命令。

但这似乎不适用于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

有什么帮助吗?

最佳答案

正确的属性名称是 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.0

关于python - 使用 Pyspark Kernel 读取 Jupyter Notebook 中的 Spark Avro 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42079846/

相关文章:

jdbc - 使用JDBC数据源时如何将用户名和密码传递给Spark-SQL?

python - 检测交替迹象

python - 在另一个目录中运行 Python 脚本

python - 如何循环遍历django查询集数据并在数组而不是字典中设置值

python - 用于指定单元测试执行顺序的 Nose 插件

java - RowMatrix、MLlib、Java Spark

scala - Spark Elasticsearch 抛出403禁止错误

apache-spark - 在本地主机上 Spark

azure - 如何将保留历史记录(时间戳和版本)的 Databricks 表复制到新订阅中的另一个 Databricks?

apache-spark - 如何仅从 Edge DataFrame 制作 GraphFrame