我已经创建了一个 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/