簡體   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