使用pyspark从s3读取/加载avro文件

问题描述

使用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”。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...