我有一个镶木地板文件,我按用户存储了一些指标。 到目前为止,我已经完全重新计算了这个文件,但是计算很复杂,所以我想覆盖特定的列。
有两种方法:
因此,例如在添加新行时,我想做类似的事情:
df_old = sqlContext.read.parquet(myfile)
df_new = df_other_src.select(...)
df_new = df_old.alias("o").join(df_new.alias("n"), "o.id == n.id", "right")\
.where("o.id is NULL").select("n.id")
df_new.write.parquet(myfile,mode="append")
问题是这不起作用,因为df_new
取决于df_old
。解决这个问题的最佳方法是什么?
答案 0 :(得分:2)
几天前,我遇到了这个问题。所以我做的是
如果我没有这样做,每次作业运行时都会创建大量空白且小的文件。
我希望这也为你提供了想法。