繁体   English   中英

将数据框另存为AVRO Spark 2.4.0

[英]Save dataframe as AVRO Spark 2.4.0

从Spark 2.4.0起,可以在没有外部jar的情况下另存为AVRO。 但是我根本无法正常工作。 我的代码如下所示:

key = 'filename.avro'
df.write.mode('overwrite').format("avro").save(key)

我收到以下错误:

pyspark.sql.utils.AnalysisException: 'Failed to find data source: avro. Avro is built-in but external data source module since Spark 2.4. Please deploy the application as per the deployment section of "Apache Avro Data Source Guide".;'

因此,我看一下《 Apache Avro数据源指南》( https://spark.apache.org/docs/latest/sql-data-sources-avro.html ),它给出了以下示例:

df=spark.read.format("avro").load("examples/src/main/resources/users.avro")

df.select("name","favorite_color").write.format("avro").save("namesAndFavColors.avro")

是一样的,所以我迷路了。有人知道出什么问题了吗?

您链接的文档明确指出:

spark-avro模块是外部模块,默认情况下不包含在spark-submit或spark-shell中。

并进一步说明如何包含该软件包。

所以你的声明:

从Spark 2.4.0起,可以在没有外部jar的情况下另存为AVRO。 H

是不正确的。

spark-avro模块是外部模块,默认情况下不包含在spark-submit或spark-shell中。

与任何Spark应用程序一样,spark-submit用于启动您的应用程序。 spark-avro_2.11及其依赖项可以使用--packages直接添加到spark-submit中,例如,

./bin/spark-submit --packages org.apache.spark:spark-avro_2.11:2.4.0 ...

为了试验spark-shell,您还可以使用--packages直接添加org.apache.spark:spark-avro_2.11及其依赖项,

./bin/spark-shell --packages org.apache.spark:spark-avro_2.11:2.4.0 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM