[英]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.