gpt4 book ai didi

scala - 为什么在我使用 com.databricks.spark.avro 时必须添加 org.apache.spark.avro 依赖才能在 Spark2.4 中读/写 avro 文件?

转载 作者:行者123 更新时间:2023-12-05 04:39:43 25 4
gpt4 key购买 nike

我尝试在安装了 Spark 2.4.8 的 Cloud Dataproc 集群 1.4 上运行我的 Spark/Scala 代码 2.3.0。我在读取 avro 文件时遇到错误。这是我的代码:

sparkSession.read.format("com.databricks.spark.avro").load(input)

此代码按预期失败。然后我添加了这个 dependency到我的 pom.xml 文件:

<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-avro_2.11</artifactId>
<version>2.4.0</version>
</dependency>

这使我的代码成功运行。这是我不明白的部分,我仍在我的代码中使用模块 com.databricks.spark.avro。为什么添加 org.apache.spark.avro 依赖项解决了我的问题,知道我并没有真正在我的代码中使用它?

我原以为我需要将我的代码更改为如下内容:

sparkSession.read.format("avro").load(input)

最佳答案

这是历史性的产物,因为最初 Spark Avro 支持是由 Databricks 在其专有的 Spark Runtime 中添加为 com.databricks.spark.avro 格式,当时 Sark Avro 支持被添加到 open-源 Spark 为 avro 格式然后,为了向后兼容,保留了对 com.databricks.spark.avro 格式的支持 if spark.sql.legacy.replaceDatabricksSparkAvro.enabled property is set to true :

If it is set to true, the data source provider com.databricks.spark.avro is mapped to the built-in but external Avro data source module for backward compatibility.

关于scala - 为什么在我使用 com.databricks.spark.avro 时必须添加 org.apache.spark.avro 依赖才能在 Spark2.4 中读/写 avro 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70395056/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com