在记录历史记录(聚合)火花流上运行SQL查询

时间:2018-06-20 07:58:36

标签: apache-spark pyspark apache-spark-sql spark-streaming

我有一个架构-

 |-- 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的要求。

0 个答案:

没有答案
相关问题