尽管存在问题,但显然DataSet API中没有窗口,但是我想知道为什么这样做,因为从概念上讲,能够处理有限的源并且仍然具有窗口操作似乎很有意义。
我错了吗?是否可以在DataSet
,UnsortedGrouping
或类似的地方设置窗户?
如果不是,我猜可以选择使用Beam。
答案 0 :(得分:1)
DataSet API不提供用于窗口的内置运算符。主要原因是它早于DataStream API,并且最初不是为此类用例设计的。 但是,它提供了用于实现自定义窗口逻辑的所有构件。
还有Table API / SQL,它是用于批处理和流处理的统一API。在内部,Table API和SQL查询被转换为DataStream和DataSet作业。对于批处理查询,窗口操作主要基于reduceGroup
,sortPartition
和mapPartition
转换为自定义窗口实现(如前所述)。但是,批处理查询尚不支持所有窗口类型。
还结合了批处理和流处理的Apache Beam,也可能是可行的选择。