我是flink和流媒體的新手。我想將每個分區的某個函數應用到流的每個窗口(使用事件時間)。什麼迄今爲止我所做的是這樣的:Flink流媒體 - 在Windows應用功能
val env = StreamExecutionEnvironment.getExecutionEnvironment
env.setStreamTimeCharacteristic(TimeCharacteristic.EventTime)
val inputStream = env.readTextFile("dataset.txt")
.map(transformStream(_))
.assignAscendingTimestamps(_.eventTime)
.keyBy(_.id)
.timeWindow(Time.seconds(windowSize),Time.seconds(slidingStep))
def transformStream(input: String): EventStream = {...}
case class EventStream(val eventTime: Long, val id: String, actualEvent: String)
我想要做的是一般的功能應用到每個窗口批次中的每個分區,也許應用複雜的處理算法或類似的東西。我已經看到該方法適用於DataStream API,但我不明白它是如何工作的。在弗林克API它說,它是用來一樣,在斯卡拉:
inputStream.apply { WindowFunction }
誰能解釋這是什麼或如何使用它的應用方法是什麼?斯卡拉的一個例子是可取的。應用方法做我想要的嗎?
問題是我想處理整個分區,map/flatMap函數調用在DataStream的每個元素上應用轉換。 –