Flink Streaming函數操作

max與maxBy的區別。min與minBy同理

maxBy:對比某字段返回最大的一條記錄,如果這條記錄有N個字段,會全部返回

max:比某字段僅返回此字段,這條記錄的吉他字段不返回

 

interval join 該操作需要制定event time

在給定的週期內,按照指定的key對兩個keyedStream進行join操作,把符合條件的兩個event弄到一起進行操作

例如:把一定時間範圍內的分組數據拉成一寬表

streamA與streamB均是按照某個keySelector篩選出來的,後面他們有相同的key才能join

streamA.intervalJoin(streamB)                     [兩個流join]

.between(timestamp1,timestamp2)               [在某時間範圍內,streamB的時間在streamA的time1與time2之間]

.uperBoundExclusive().lowerBoundExclusive()            [包含剛好等於這兩個時間點的數據]

.process(處理邏輯)

 

connect與union

connect之後生成connectStream,內部是一個鬆散結構,可以對2個流使用不同的方法處理,

但是他們之間可以共享狀態,比如共享計數器.

union可以連接多個流.並且連接的流的類型必須一致.

 

 

split 與select

split後返回一個迭代器iterable.在迭代中聲明一個list,把符合A條件的結果放入集合中,自己命名一個"AAA",符合B條件的結果也放入集合中,命名"BBB"......CCC...DDD..

然後對這個splitStream.select("XXX","XXX","XXX"....) 返回某個DataStream

 

project

刪減event中不需要的屬性.比如: Tuple20-> tuple5 降低IO.僅限java使用,scala不可用

 

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章