[英]Grouping sensor data overtime with Spark Structured Streaming
我們有傳感器每天多次啟動和運行隨機持續時間。 來自傳感器的數據被發送到 Kafka 主題並由 Spark 結構化流 API 使用並存儲到 Delta Lake。 現在我們必須識別每個傳感器的會話並將其存儲在不同的 Delta Lake 表中,該表由 device_id 和 sensor_id 分區。
我嘗試使用帶水印的 Spark Structured Streaming,但效果不佳。
stream2 = spark.readStream.format('delta')
.load('<FIRST_DELTA_LAKE_TABLE>')
.select('device_id', 'json', 'time')
.withWatermark('timestamp', '10 minutes')
.groupBy('device_id').agg(F.min('time').alias('min_time'), F.max('time').alias('max_time')))
.writeStream
.format("delta")
stream2.start("<SESSIONS_TABLE>")
這個想法是讓第二個表識別傳入數據的會話並保存每個 session 和設備的開始時間和結束時間。 流作業運行,沒有任何內容寫入會話增量表。
對此的任何幫助將不勝感激。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.