我有一个用python编写的梁管道,它读取两个拼花文件:state
和updates
。管道保存当前的数据"状态"。在state
文件中,读取updates
文件,它将用updates
的内容更新state
文件(可能添加新行)。理想情况下,我的管道应该覆盖状态文件,以便下次管道运行时有新的更新,我可以将它们与最近的状态进行比较。这是我的问题。我的起始文件被称为state.parquet
,在我的管道结束后,它不会覆盖该文件,但它会创建一个名为state-00000-of-00001.parquet
的新文件。这让我意识到这样做可能不是一个好主意,因为当文件增长时,我可以将输出文件分片到多个单独的文件中,这将导致问题。
您可以给您的文件一个执行id后缀,如state-run0001-00000-of-0000x.parquet
和update-run0002-00000-of-0000x.parquet
。使用文件名(如state-run0001
和update-run0002
)作为管道的输入。然后将输出写入state-run0002-00000-of-0000x.parquet
。
您只需要跟踪执行idrun000x
来调度您的作业。