使用 pyspark 在 Jupyter notebook 中读取 avro 文件时遇到问题

Posted

技术标签:

【中文标题】使用 pyspark 在 Jupyter notebook 中读取 avro 文件时遇到问题【英文标题】:Trouble reading avro files in Jupyter notebook using pyspark 【发布时间】:2019-06-16 12:32:21 【问题描述】:

我正在尝试使用 pyspark 在 Jupyter notebook 中读取 avro 文件。当我阅读文件时出现错误。

我已经下载了 spark-avro_2.11:4.0.0.jar,我不确定我应该在代码的哪个位置插入 avro 包。任何建议都会很棒。

这是我用来读取 avro 文件的代码示例

df_avro_example = sqlContext.read.format("com.databricks.spark.avro").load("example_file.avro")

这是我得到的错误

AnalysisException: '未能找到数据源:com.databricks.spark.avro。请在 http://spark.apache.org/third-party-projects.html 找到 Avro 包;'

【问题讨论】:

【参考方案1】:

将 jar 下载到某个位置并在您的 pyspark 应用程序中使用以下代码 sn-p

import os
os.environ['PYSPARK_SUBMIT_ARGS'] = '--jars /path/tojar/spark-avro_2.11:4.0.0.jar pyspark-shell' 

【讨论】:

感谢您对此的帮助,您的建议工作! 我的约会遇到了一些麻烦,想知道我需要做些什么来纠正这个问题。我使用下面的示例来提取 4 月最后一天、5 月整个月和 6 月第一天的数据。但我现在正在寻找 12 月的最后一天、1 月的整个月和 2 月的第一天的数据。但因为 12 月是 2018 年,我不知道如何调整我的代码。任何建议@Ranga Vure example_file.avro/20190430,5,601*\")

以上是关于使用 pyspark 在 Jupyter notebook 中读取 avro 文件时遇到问题的主要内容,如果未能解决你的问题,请参考以下文章

使用常规 Jupyter Notebook 导入 PySpark 包

Jupyter + PySpark 自动完成

为 Jupyter 创建 pyspark 内核

Pyspark / pyspark 内核在 jupyter notebook 中不起作用

在 jupyter notebook 中将自定义 jars 添加到 pyspark

PySpark 和 Jupyter-notebook 中的 Collect() 错误