Apache flink 来自目录的Apache Flink流文件

Apache flink 来自目录的Apache Flink流文件,apache-flink,Apache Flink,我想以给定的顺序将一组csv文件加载到Apache Flink中,例如,由文件名中的命名方案确定,其中可能包含一些时间戳信息 在ApacheSpark中,只要将文件移动到特定目录(例如./data/staging),我就可以通过如下原子文件移动将其流式传输到数据集 Dataset<Row> fileStreamDf = spark.readStream() .option("header", true) .schema(schema)

我想以给定的顺序将一组csv文件加载到Apache Flink中,例如,由文件名中的命名方案确定,其中可能包含一些时间戳信息

在ApacheSpark中,只要将文件移动到特定目录(例如./data/staging),我就可以通过如下原子文件移动将其流式传输到数据集

Dataset<Row> fileStreamDf = spark.readStream()
            .option("header", true)
            .schema(schema)
            .csv("/data/staging")
数据集fileStreamDf=spark.readStream() .选项(“标题”,真) .schema(schema) .csv(“/data/staging”) 然后,我会按照给定的顺序(例如使用bash脚本)将文件逐个移动到该临时目录


我如何使用ApacheFlink实现同样的效果

这不是完全相同的用例,但我们必须在流媒体作业中执行类似的操作(文件是
HDF5
而不是
CSV
)。因此,我编写了一个
RichSourceFunction
,它知道如何以正确的顺序遍历文件,并将文件路径(这些路径在S3中)作为字符串记录发出。然后一个下游
flatmap函数
解析文件并发出实际行。

感谢这个解决方案,我可以看到它是如何工作的。我们的设置实际上非常相似,我们在S3上有csv(和ev.hdf5)。也许将卡夫卡作为一个来源可能是一个可行的解决方案。实时数据已经来自卡夫卡频道了。嗨,丹尼尔-如果数据在卡夫卡频道,那么是的,从卡夫卡频道获取数据(而不是通过S3)是有意义的。如果我的回答有帮助,请接受:)谢谢。我认为这可能是基本Flink堆栈的一部分,因为它在测试设置中非常常见,并且需要合并历史数据和实时数据