【问题标题】:Read/Load avro file from s3 using pyspark使用 pyspark 从 s3 读取/加载 avro 文件
【发布时间】:2021-01-05 01:36:51
【问题描述】:

使用 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[ApacheAvro 数据源指南][1]

Apache Avro as a Built-in Data Source in Apache Spark 2.4

【问题讨论】:

    标签: apache-spark pyspark aws-glue apache-zeppelin


    【解决方案1】:

    你只需要导入那个包

     org.apache.spark:spark-avro_2.11:4.0.0
    

    查看你需要的版本here

    【讨论】:

      【解决方案2】:

      您是否在启动 shell 时导入了包?如果没有,您需要启动一个shell,如下所示。以下包适用于 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'。

      【讨论】:

      • 我们通过以下命令ssh -i <dev-endpoint-private-key.pem> glue@<public-address> 访问AWS Developer 实例并且不显式启动shell
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-08
      • 1970-01-01
      • 2018-08-19
      相关资源
      最近更新 更多