我正在使用file source in Spark Structures Streaming,并希望在处理完文件后删除这些文件。
我正在一个充满JSON文件(1.json
,2.json
等)的目录中阅读,然后将它们写为Parquet文件。我希望在成功处理后删除每个文件。
答案 0 :(得分:2)
编辑2 :将我的go脚本更改为读取源代码。 new script
编辑:目前正在尝试此操作,它可能会在处理之前删除文件。目前正在寻找更好的解决方案并研究这种方法。
我通过创建a Go script暂时解决了这个问题。它将扫描我在Spark中设置的检查点文件夹并处理其中的文件,以确定哪些文件已经从Spark写出。如果它们存在,它将删除它们。它每隔10秒就会这样做。
但是,依赖于Spark的检查点文件结构和表示(JSON),它没有记录,可能随时更改。我还没有查看Spark源代码,看看我正在阅读的文件(checkpoint/sources/0/...
)是否是处理文件的真实来源。似乎工作ATM虽然!比此时手动更好。