我有一个架构-
|-- record_id: integer (nullable = true)
|-- Data1: string (nullable = true)
|-- Data2: string (nullable = true)
|-- Data3: string (nullable = true)
|-- Time: timestamp (nullable = true)
我想知道具有最新时间戳的每个记录ID的记录。我在structured streaming中无法做到这一点。在Spark Streaming中,我通过使用foreachRDD在每个传入的批处理上实现了这一目标,并将每个传入的RDD转换为一个数据帧,然后在其上运行sql查询。
但是,这仅在每个新RDD上产生结果,而不使用整个历史记录。我知道我可以在使用键值对的Spark流中执行此操作,但是我对在整个历史记录(分组依据,联接等)上运行SQL查询非常感兴趣。如何在Spark Streaming中而不是Spark结构化Streaming中做到这一点? 我无法在结构化流中执行此操作的另一个原因是because,我无法在加入之前使用流聚合,这就是我对this的要求。