私はフリンクとストリーミングにも新しいです。ストリームの各ウィンドウにパーティションごとに特定の機能を適用したい(イベント時間が使用される)。私がこれまで行ってきたことはこれです:Flinkストリーミング - ウィンドウに機能を適用する
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に適用されているのを見ましたが、どのように動作するのか分かりませんでした。 FLINKのAPIではそれはScalaではそのように使用されていると言う:
inputStream.apply { WindowFunction }
誰かがまたはそれがどのように使用されない方法を適用するかを説明することはできますか? Scalaの例は好ましいことです。適用メソッドは私が望むことをしますか?
私はパーティション全体を操作し、map/flatMap関数呼び出しはDataStreamの各要素に変換を適用したいということです。 –