我应该如何增量更新镶木地板文件?

时间:2018-12-11 05:55:16

标签: apache-spark parquet

所以我有一份日常工作,将CSV解析为Parquet。最佳做法是:

  • 仅增量读取新数据。确保输入数据具有某种时间戳的唯一方法

  • 仅增量输出新数据。当前作为一种解决方法,我将使用写入模式“覆盖”。但是我不认为这会有效吗?

1 个答案:

答案 0 :(得分:0)

尽管细节很重要,但理论上您的问题的答案很简单

  • 仅增量读取新数据:每次作业运行时,都应从输入目录中删除已处理或将要处理的数据。创建一个“已使用”目录,然后将数据移到该目录中,以防您需要回放数据。
  • 仅增量输出新数据:使用写入模式“覆盖”效率低下,因为您可能丢失先前运行的输出,或者必须一起处理旧数据和新数据。您可以使用“附加”模式将数据框保存到一个已经存在的输出目录中。

请务必注意,spark的Append模式可能会对性能产生影响; spark需要确保新的输出文件具有唯一的名称。您在目标中拥有的文件越多,spark识别新文件名所花费的时间就越长。

希望这会有所帮助。