如何使用spark将数据框附加到数据源而不复制数据



我正在尝试使用append将新的数据帧保存到数据源。问题是数据框在数据源中已经有一些行是重复的。

df.write 
.format('bigquery') 
.option('table', 'datasource') 
.mode("append") 
.save()

如何做到不复制?

谢谢,

有两个解决方案

第一个:join

将当前数据与前一个数据进行比较,只写不存在的行。

df_old = spark.read.format("bigquery").option("table", "datasource").load()
df = df.join(
df_old,
how="left_anti",
on="", # add proper join condition here
)

第二个:连接并重写

连接新旧数据,删除数据,然后重写它们

df_old = spark.read.format("bigquery").option("table", "datasource").load()`
df.unionAll(df_old).distinct().write(...)

相关内容

  • 没有找到相关文章

最新更新