python - 无法在 Jupyter 笔记本中读取 avro

标签 python apache-spark pyspark jupyter-notebook

我已经创建了一个 SparkContext 和一个 Spark 全局变量。当我读取 ORC 文件时,我可以像 spark.read.format("orc").load("filepath") 一样简单地读取它们,但是,对于 avro 我似乎不能这样做即使我尝试像这样导入 jar:

    spark.conf.set("spark.jars.packages",
    "file:///projects/apps/lib/spark-avro_2.11-3.2.0.jar")

错误:

and then try to read the avro file. I get an error like so: 
Py4JJavaError: An error occurred while calling o65.load.
: org.apache.spark.sql.AnalysisException: Failed to find data source: avro. Please find an Avro package at http://spark.apache.org/third-party-projects.html;

最佳答案

spark.jars.packages 采用 Gradle 兼容坐标:

spark.jars.packages  org.apache.spark:spark-avro_2.12:2.4.2

此外,如 How to load jar dependenices in IPython Notebook 中所述,它必须在 JVM 和 SparkSession/SparkContext 初始化之前设置。

所以你必须:

  • 修复设置。
  • 在 JVM 初始化之前将它们作为配置或环境变量提供。

关于python - 无法在 Jupyter 笔记本中读取 avro,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55850851/

相关文章:

python - 查找 pandas 列的平均时间

python - PySPark - 确定操作后数据类型的函数

csv - 如何在IPython Notebook中加载jar依赖项

python-2.7 - PySpark 使用统计信息写入 Parquet 二进制列(signed-min-max.enabled)

apache-spark - PySpark 结构化流,窗口根据时间戳值获取最早和最新记录

带有字节序转换的 Python 文件 Slurp

python - 如何更改字典值内的元组?

python - 从 Bitbucket OAuth 获取 400

hadoop - 嵌入式模式下的 Spark - 未找到用户/配置单元/仓库

scala - 在 EMR 上使用 Spark 写入 S3 中的文件