由于業務需要:需要在固定時間點計算當時的流量。
每5分鐘計算一個流量(如00:00-00:05,00:05-00:10 等),一天分為288個點
如何使用spark去完成這樣的功能?我的當前思路是這樣的,不知道有什么更好的方法沒有?
初步思路:利用structured streaming 把指定時間(變數)過濾出來,其它的資料輸入到資料庫,下次 從實時流和資料庫讀取“歷史”資料
val realdata=https://bbs.csdn.net/topics/ds1.filter($"event_time"<times)
val others=ds1.filter($"event_time">times)
不過這面臨著動態改變時間的問題,于是我把改變時間放在監聽結構流的方法里
override def onQueryProgress(queryProgress: QueryProgressEvent): Unit = {
times = df.format(df.parse(times).getTime + 300000)
//read history database and put it to realdata
}
不過這面臨著這個方法重復的問題,這個方法在一個batch里會運行多次
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/60059.html
標籤:Spark
上一篇:aws賬戶無法登陸問題
下一篇:筆記本連接wifi網速特別慢
