问题描述
使用AWS胶水开发人员终端节点Spark Version - 2.4
Python Version- 3
代码:
df=spark.read.format("avro").load("s3://dataexport/users/prod-users.avro")
在尝试读取Avro文件时获取以下错误消息:
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".;
https://spark.apache.org/docs/latest/sql-data-sources-avro.html[Apache Avro数据源指南] [1]
Apache Avro as a Built-in Data Source in Apache Spark 2.4
解决方法
您只需要导入该程序包
org.apache.spark:spark-avro_2.11:4.0.0
检查所需的版本here
,启动外壳程序时是否导入了软件包?如果不是,则需要如下所示启动外壳。以下软件包适用于spark 2.4+版本。
pyspark --packages com.databricks:spark-avro_2.11:4.0.0
也可以在read.format内编写如下内容:
df=spark.read.format("com.databricks.spark.avro").load("s3://dataexport/users/prod-users.avro")
注意:对于pyspark,您需要编写“ com.databricks.spark.avro ”而不是“ avro”。