
199
10.3 変換
10-15
DStream
Java
transform()
JavaPairDStream<String, Long> ipRawDStream = accessLogsDStream.transform(
new Function<JavaRDD<ApacheAccessLog>, JavaRDD<ApacheAccessLog>>() {
public JavaPairRDD<ApacheAccessLog> call(JavaRDD<ApacheAccessLog> rdd) {
return extractOutliers(rdd);
}
});
複数の
DStream
のデータの結合と変換は、
StreamingContext.transform
あるいは
DStream.
transformWith(otherStream, func)
を使って行うこともできます。
10.3.2
テートフルな
DStream
のステートフルな変換は、時間の経過とあわせてデータを追跡するための操作です。
これはすなわち、新しいバッチに対する結果を生成するために、過去のバッチのデータが使われる
ことを意味します。主な種類としては、時間に対するスライディングウィンドウに対して処理を行
うウィンドウ操作と、各キーに対するイベントに渡って状態を追跡する(例えば各ユーザーセッ
ションを表すオブジェクトの構築)のに使われる
updateStateByKey()
の
2
つがあります。
ステートフルな変換を行うには、フォールトトレランスのために ...