我有一个庞大的表,其中包含数十亿(20)条记录,而作为输入的源文件是Target Parquet文件。
每天我都会收到一个增量传入文件,以更新Target文件夹中的现有记录并追加新数据。
使用spark SQL数据框,有没有办法读取和更新镶木地板文件的特定分区?
答案 0 :(得分:0)
我发现在标题上的覆盖方面,这个问题有点不清楚,但要附加在正文中。无论如何,我想这取决于解释。
此外,不确定是表还是文件,但这可以很好地工作,例如:
df.write.format("parquet").mode("append").save("/user/mapr/123/SO.parquet")
在这种情况下,您可以多次将任何数据附加到目录,而不是Hive注册表。然后DF Writer可以完成所有操作。
如果进行了ovewrite,那么这也足够了,但是如果您不想丢失原始数据,也需要提供原始数据:
df.write.format("parquet").mode("overwrite").save("/user/mapr/123/SO.parquet")
很可能您想要的东西是不可能的,即追加和新建。在这种情况下,您将需要自己的差异分析器和几行代码。