我正在尝试使用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(...)