首页 > 解决方案 > 以追加模式写入pyspark中的红移

问题描述

我正在尝试使用 pyspark 将数据框附加到红移表中。

我究竟做错了什么?

该表是现有的,并且已经有一些数据。

myDf.write \
.format("com.databricks.spark.redshift") \
.option("url", JDBC_REDSHIFT) \
.option('forward_spark_s3_credentials', "true") \
.option("dbtable", MY_TABLE) \
.option("tempdir","s3n://MyDir") \
.save(mode='append')

我收到此错误 -

MyDir") .save(mode='append')
  File "/usr/lib/spark/python/lib/pyspark.zip/pyspark/sql/readwriter.py", line 701, in save
  File "/usr/lib/spark/python/lib/py4j-0.10.6-src.zip/py4j/java_gateway.py", line 1160, in __call__
  File "/usr/lib/spark/python/lib/pyspark.zip/pyspark/sql/utils.py", line 69, in deco
pyspark.sql.utils.AnalysisException: 'Failed to find data source: com.databricks.spark.avro. Please find an Avro package at http://spark.apache.org/third-party-projects.html;'

标签: pysparkamazon-redshift

解决方案


看起来您缺少 Avro 包。Spark 以 Avro 格式将数据帧写入 S3,然后将该数据加载到 Redshift。


推荐阅读