【发布时间】:2022-11-24 04:26:36
【问题描述】:
我的要求是读取它并将另一组镶木地板数据生成到另一个 ADLS 文件夹中。
我需要将它放入 spark 数据帧并执行更新吗?
【问题讨论】:
我的要求是读取它并将另一组镶木地板数据生成到另一个 ADLS 文件夹中。
我需要将它放入 spark 数据帧并执行更新吗?
【问题讨论】:
Parquet 与任何其他文件格式一样。您必须覆盖文件才能执行插入、更新和删除。它不像数据库那样具有 ACID 属性。
1 - 我们可以将 SET 属性与 spark 数据框一起使用来完成你想要的。但是,它在行和列级别进行比较。不如 ANSI SQL 好。
https://spark.apache.org/docs/latest/sql-ref-syntax-qry-select-setops.html
2 - 我们可以将目标目录中的数据保存为 DELTA 文件。大多数人都在使用 DELTA,因为它具有像数据库一样的 ACID 属性。请参阅合并声明。它允许更新和插入。
https://docs.delta.io/latest/delta-update.html
此外,我们可以在反转比赛时进行软删除。
增量文件(表)的好处是我们可以按日期对每日文件加载进行分区。因此,我们可以使用时间旅行来查看昨天与今天发生的情况。
3 - 如果您不关心历史记录和软删除,完成此任务的最简单方法是将旧文件归档到目标目录中,然后将新文件从源目录复制到目标目录。
【讨论】: