使用pyspark将数据帧移动到红移

时间:2018-01-09 07:08:11

标签: pyspark amazon-redshift

我有一张redshift表格

id, name, address
1, 'aaa', 'xxx'
2, 'bbb', 'yyy'

我在pyspark中有一个数据框

id, name, address
1, 'ccc', 'zzz'
5, 'ddd', 'xyx'

现在我需要使用upsert模式将pyspark中的数据帧上传到redshift表。

任何人都可以帮我解决这个问题吗

2 个答案:

答案 0 :(得分:0)

使用Redshift Data Source for Apache Spark进行此操作。请记住,在加载此数据之前,表应该已存在于Redshift中。

答案 1 :(得分:0)

首先,您需要检查您的目标表在红移中的存在。然后,您可以从以下代码中获取帮助。

# Write back to a table
df.write \
  .format("com.databricks.spark.redshift") \
  .option("url", "jdbc:redshift://redshifthost:5439/database?user=username&password=pass") \
  .option("dbtable", "my_table_copy") \
  .option("tempdir", "s3n://path/for/temp/data") \
  .mode("error") \
  .save()