使用 Spark 结构化流处理后删除文件

2024-03-31

我正在使用Spark结构化流中的文件源 http://spark.apache.org/docs/latest/structured-streaming-programming-guide.html#data-sources并想在处理完这些文件后将其删除。

我正在读取一个充满 JSON 文件的目录(1.json, 2.json等),然后将它们写入 Parquet 文件。我想在成功处理每个文件后删除它。


EDIT 2:更改了我的 go 脚本以读取源代码。新脚本 https://github.com/saulshanabrook/ici.recorder/blob/fd8110e490691cc9e98dce1fefbddba973c29deb/cleanup-files/main.go

EDIT:目前正在尝试此操作,可能会在处理文件之前删除文件。目前正在寻找更好的解决方案并研究该方法。

我通过创建暂时解决了这个问题一个 Go 脚本 https://github.com/saulshanabrook/ici.recorder/blob/8f4d1e418bf0ce9fe160ecaf4dda67dabd33c5ef/cleanup-files/main.go。它将扫描我在 Spark 中设置的检查点文件夹并处理其中的文件,以找出哪些文件已从 Spark 中写入。如果它们存在,它将删除它们。它每 10 秒执行一次。

但是,它依赖于 Spark 的检查点文件结构和表示形式 (JSON),该结构和表示形式没有记录,并且可能随时更改。我也没有查看 Spark 源代码来查看我正在读取的文件(checkpoint/sources/0/...),是已处理文件的真实来源。不过,ATM 机似乎可以使用!此时比手动执行要好。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Spark 结构化流处理后删除文件 的相关文章

随机推荐