当前位置: 首页 > 知识库问答 >
问题:

将包含3列的CSV文件读入数据流。JAVA Apache Flink

吴弘壮
2023-03-14

我一直在努力设置一个flink应用程序,该应用程序从csv文件创建数据流 > 。这个文件中的列(列id、dateTime和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));

共有1个答案

任飞鸣
2023-03-14

您可以使用自己的逻辑读取csv或使用univocity_parsers这样的库。而不是使用env.readfile,您可以使用env.fromcollection(list)。

这里是库的链接,以备您需要:https://www.univocity.com/pages/univocity_parsers_tutorial#using-annotations-to-map-your-java-beans

您可以使用anotaion@convert(conversionClass=YourDatatimeCoverter.Class)提供自己的转换器

https://ci.apache.org/projects/flink/flink-docs-stable/dev/stream/operators/windows.html#聚合函数

 类似资料:
  • 我想用javascript在csv文件的列中写一个字符串。我使用下面的代码,但是它在一列中写入整个字符串。 这就是我如何创建csv fi: 有什么建议吗?

  • 问题内容: 我正在尝试将csv文件“ read_ex.csv”读入数组。我在web / stackoverflow上进行了无休止的搜索,以找到一种将文件读入数组的方法。我能做的最好的事情是以流方式读取它,但是由于文件大小可变,我无法将其存储在数组中。我相信ArrayList是处理可变大小数组的方法,但是我不知道如何使用它。本质上,我希望能够在while循环结束后访问String数组“ values

  • 问题内容: 我正在尝试使用SSIS将Csv文件导入SQL SERVER 这是一个数据看起来像的例子 Csv列不包含文本限定符(引号) 我使用SSIS创建了一个简单的程序包,将其导入到SQL中,但有时SQL中的数据如下所示 原因是somtimes [Student_Notes]列包含用作列定界符的逗号(,),因此未正确导入行 有什么建议 问题答案: 一个警告:我不是常规的C#编码器。 但是无论如何,

  • 本文向大家介绍Python将列表数据写入文件(txt, csv,excel),包括了Python将列表数据写入文件(txt, csv,excel)的使用技巧和注意事项,需要的朋友参考一下 写入txt文件 写入csv文件 写入excel文件 以上所述是小编给大家介绍的Python将列表数据写入文件(txt, csv,excel)详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回

  • 我有一个文件。 使用Pandas,从这个文件中获得两个DataFrame和的最佳策略是什么? 输入如下所示: 到目前为止,我想到的最好的方法是转换这个文件转换为Excel工作簿(),将表格拆分为工作表并使用: 然而: 这种方法需要模块。 这些日志文件必须被实时分析,这样就可以更好地找到一种方法来分析它们,因为它们来自日志。 真正的日志比那两个有更多的表。

  • 我在pandas中有一个数据帧,我想把它写到CSV文件中。我使用的是: 并得到错误: 有没有什么方法可以很容易地解决这个问题(例如,我的数据帧中有unicode字符)?还有,有没有一种方法可以使用“to-tab”方法(我认为不存在)写入以制表符分隔的文件,而不是CSV?