scala - Flink WindowFunction 折叠
问题描述
我创建了一个滑动窗口并希望递归地打包所有进入该窗口期间的元素,这是代码的一部分
.map(x => ((x.pickup.get.latitude, x.pickup.get.longitude), (x.dropoff.get.latitude, x.dropoff.get.longitude)))
.windowAll(SlidingEventTimeWindows.of(Time.minutes(10), Time.minutes(1)))
.fold(List[((Double, Double), (Double, Double))]) {(acc, v) => acc :+ ((v._1._1, v._1._2), (v._2._1, v._2._2))}
我希望创建一个List
其中的元素tuple
,但这不起作用。
我试过这个并且它有效:
val l2 : List[((Int, Int), (Int, Int))] = List(((1, 1), (2, 2)))
val newl2 = l2 :+ ((3, 3), (4, 4))
我怎样才能做到这一点?非常感谢
解决方案
函数的第一个参数fold
需要是初始值而不是类型。将最后一行更改为:
.fold(List.empty[((Long, Long), (Long, Long))]) {(acc, v) => acc :+ ((v._1._1, v._1._2), (v._2._1, v._2._2))}
应该做的伎俩。
推荐阅读
- windows - Docker 使用 json 凭据登录到 gcp
- mysql - Sql replace 正在将其他值设置为 null
- asynchronous - sqlite-net-pcl nuget 缺少用于异步 sqlite 连接的 API
- javascript - AsyncStorage 和 Drawer 呈现始终为空
- javascript - 看不到数据表上的数据 -DataTables 警告:表 id=tableData
- c# - 记录会话后控制器出现问题
- graphql - GraphQL :使用关键字搜索,提供存储库列表,并为每个存储库提供使用 github API 的协作者
- sql - 如何按日期编写每个部门的最低和最高工资的 SQL 查询?
- regex - 正则表达式与 [A-Z0-9]+ 中任意位置的单次破折号匹配,总共出现 20 个字符
- mysql - MySQL ON DELETE CASCADE 设置但不从其他表中删除行