![](/img/trans.png)
[英]Pyspark 2.4.0, read avro from kafka with read stream - Python
[英]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.