gpt4 book ai didi

scala - Spark 读取 Avro 文件

转载 作者:行者123 更新时间:2023-12-01 22:00:19 24 4
gpt4 key购买 nike

我正在使用 com.databricks.spark.avro。当我像这样从 spark-shell 运行它时:spark-shell --jar spark-avro_2.11-4.0.0.jar,我可以通过这样做来读取文件:

import org.apache.spark.sql.SQLContext
val sqlContext = new SQLContext(sc)
val avroInput = sqlContext.read.format("com.databricks.spark.avro").load(inputPath)
avroInput.write.format("com.databricks.spark.avro").save(outputPath)

但是如果我尝试使用 sbt clean run 从我的项目中做同样的事情,我会得到:

java.lang.ClassNotFoundException: Failed to find data source: org.apache.spark.sql.avro.AvroFileFormat. Please find packages at http://spark.apache.org/third-party-projects.html
[info] at org.apache.spark.sql.execution.datasources.DataSource$.lookupDataSource(DataSource.scala:657)
[info] at org.apache.spark.sql.DataFrameReader.load(DataFrameReader.scala:194)
[info] at org.apache.spark.sql.DataFrameReader.load(DataFrameReader.scala:178)
[info] at com.databricks.spark.avro.package$AvroDataFrameReader$$anonfun$avro$2.apply(package.scala:34)

"com.databricks"%% "spark-avro"% "4.0.0" 列在我的依赖项中,它在我的外部库中。我还缺少其他依赖项吗?

最佳答案

以下是在 Spark 中使用 Avro 时需要的依赖项。根据您的需要,使用以下其中一项。

Maven 依赖项。

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

Spark 提交

在使用spark-submit时,直接使用--packages提供spark-avro_2.12及其依赖,例如,

./bin/spark-submit --packages org.apache.spark:spark-avro_2.12:2.4.4

Spark 外壳

在使用spark-shell的同时,也可以使用--packages直接添加spark-avro_2.12及其依赖,

./bin/spark-shell --packages org.apache.spark:spark-avro_2.12:2.4.4

根据您使用的版本更改 spark-avro 版本。

引用Using Avro Data Files From Spark SQL 2.4.x and later快乐学习!!

关于scala - Spark 读取 Avro 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53715347/

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