我使用的是火花结构化流,需要从窗口的第二行获取价值。
让我说这是我1分钟窗口中的数据
|| second | col1 | col 2 ||
===========================
1 a b
2 c d
. . .
60 x y
所以基本上我想引用Windows聚合中的第二行,即
|| second | col1 | col 2 ||
===========================
2 c d
由于有first()和last()函数可用,因此我能够轻松地在聚合操作中引用first和last
val aggregates = dataEvents
.withWatermark("timestamp", "5 seconds")
.groupBy(window($"timestamp", "1 minute", "1 minute", "0 seconds"))
.agg(
first("emp-id").alias("first"),
last("emp-id").alias("last")
)