以追加模式写入pyspark中的红移

Posted

技术标签:

【中文标题】以追加模式写入pyspark中的红移【英文标题】:Writing in append mode to redshift in pyspark 【发布时间】:2019-06-10 05:03:27 【问题描述】:

我正在尝试使用 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;'

【问题讨论】:

【参考方案1】:

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

【讨论】:

以上是关于以追加模式写入pyspark中的红移的主要内容,如果未能解决你的问题,请参考以下文章

我可以直接查询以镶木地板格式存储在 s3 中的数据的红移表吗

pyspark:数据帧写入镶木地板

如何更改pyspark中的列元数据?

Pyspark 数据框:将 jdbc 写入具有给定模式的表的动态创建

卸载红移:追加

Pyspark 写入数据帧并将其保存到 csv 文件中会出现错误