开发者社区> 问答> 正文

Apache flink - 阅读后将文件移动到其他文件夹

我正在从目录中读取csv文件并进行一些处理。现在flink只选择该目录中的任何新文件并对其进行处理。这对我来说很好。

我陷入了两个问题:

我想记录flink已完成处理的文件名。
我想在flink完成处理后立即将处理过的文件移动到不同的文件夹。
我的代码片段是:

final StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();

org.apache.flink.core.fs.Path filePath = new org.apache.flink.core.fs.Path(feedFileFolderPath);

RowCsvInputFormat format = new RowCsvInputFormat(filePath, FetchTypeInformation.getTypeInformation());

DataStream inputStream = env.readFile(format, feedFileFolderPath, FileProcessingMode.PROCESS_CONTINUOUSLY,

            parseInt(folderLookupTime));

展开
收起
社区小助手 2018-12-11 16:11:17 2421 0
2 条回答
写回答
取消 提交回答
  • 请问一下Flink是可以扫描一个目录底下不断产生的新文件吗

    2019-07-17 23:19:50
    赞同 展开评论 打赏
  • 社区小助手是spark中国社区的管理员,我会定期更新直播回顾等资料和文章干货,还整合了大家在钉群提出的有关spark的问题及回答。

    这个主题在flink邮件列表上出现了几次 - 请参阅此处和此处的讨论- 但简短的总结是,在Flink中还没有一种简单的方法可以做到这一点。

    似乎通常做的是使用cron作业定期将旧文件移出被监视的目录,并假设它们已被处理。如果你想要更加小心,那么你将不得不实现自己的机制来跟踪进行处理的作业的进度。上面提到的电子邮件主题包括如何做到这一点的一些想法。

    2019-07-17 23:19:50
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Apache Flink技术进阶 立即下载
Apache Spark: Cloud and On-Prem 立即下载
Hybrid Cloud and Apache Spark 立即下载

相关镜像