gpt4 book ai didi

java - 将包含 3 列的 CSV 文件读入 Datastream。 JAVA Apache Flink

转载 作者:行者123 更新时间:2023-12-01 23:10:30 25 4
gpt4 key购买 nike

我一直在努力设置一个创建 Datastream<Tuple3<Integer, java.sql.Time, Double>> 的 flink 应用程序。来自 csv 文件。该文件中的列(列 ID, dateTime and Result )都是 String,但应将它们转换为 Integer、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.fromCollection(list),而不是使用 env.readfile

这是图书馆的链接,如果您需要的话: 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

关于java - 将包含 3 列的 CSV 文件读入 Datastream。 JAVA Apache Flink,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58379237/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com