Spark覆盖到镶木地板文件的特定分区

时间:2018-09-07 03:20:48

标签: scala apache-spark apache-spark-sql aws-glue

我有一个庞大的表,其中包含数十亿(20)条记录,而作为输入的源文件是Target Parquet文件。

每天我都会收到一个增量传入文件,以更新Target文件夹中的现有记录并追加新数据。

使用spark SQL数据框,有没有办法读取和更新镶木地板文件的特定分区?

1 个答案:

答案 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")

很可能您想要的东西是不可能的,即追加和新建。在这种情况下,您将需要自己的差异分析器和几行代码。