我正在尝试找到一个受欢迎的目的地,使用DataStream API可以吸引更多的人。
我的数据将采用以下格式
输入格式:
我试图使用keyBy()运算符解决上述问题,并将其与sum()和max()运算符链接在一起。但是,我注意到在键控流中只能使用一个聚合函数。当我尝试两种聚合函数时,编译器都将显示错误消息。
当我使用使用groupBy()函数的DataSet API尝试上述问题时,我能够同时使用sum()和MaxBy()。
DataStream API代码
SingleOutputStreamOperator<Tuple8<String, String, String, String, Boolean, String, String, Integer>> stream=
environment.readTextFile("path")
.map(new MapRideData())
.filter(new FilterObject())
.keyBy(6)
.sum(7)
.max(7);
DataSet API-以下代码没有问题
DataSet<Tuple8<String, String, String, String, Boolean, String, String, Integer>> destination =
data.groupBy(6)
.sum(7)
.maxBy(7);