将包含 3 列的 CSV 文件读取到数据流中.JAVA Apache Flink.



我一直在努力设置一个从 csv 文件创建Datastream<Tuple3<Integer, java.sql.Time, Double>>的 flink 应用程序。此文件中的列(列ID, dateTime and Result(都是字符串,但它们应转换为整数、java.sql.Time 和 Double。我想要的另一件事是创建每天包含数据的翻转窗口,并平均该窗口中result列的值。问题是我不知道它的确切语法。请参阅我尝试过的下面的代码。最后一部分我有 sum(2(,但我想计算窗口的平均值。我在文档中没有看到此功能的功能。我需要自己为此编写一个方法吗?


DataStream<Tuple3<String, java.sql.Time>> dataStream = env
.readfile(path)
.map()
.keyBy(0)
.timeWindow(Time.days(1));

您可以使用自己的逻辑来读取 csv 或使用像univocity_parsers这样的库。而不是使用环境。可以使用 env 的读取文件来自集合(列表(。

这是图书馆的链接 如果你需要: https://www.univocity.com/pages/univocity_parsers_tutorial#using-annotations-to-map-your-java-beans

你可以给自己的转换器一个匿名@Convert(conversionClass =YourDataTimeCoverter.class(

有关平均值,请参阅以下带有示例的 flink 文档:。

https://ci.apache.org/projects/flink/flink-docs-stable/dev/stream/operators/windows.html#aggregatefunction

相关内容

  • 没有找到相关文章

最新更新