DoFn
DoFn<InputT, OutputT>
is an abstraction of…FIXME
Demo: @Element
import org.apache.beam.sdk.transforms.DoFn
import org.apache.beam.sdk.transforms.DoFn._
// Int in, Int out
val multiplyBy2 = new DoFn[Int, Int]() {
@ProcessElement
def process(@Element e: Int, ctx: ProcessContext): Unit = {
ctx.output(e * 2)
}
}
Demo: ProcessContext
import org.apache.beam.sdk.transforms.DoFn
import org.apache.beam.sdk.transforms.DoFn._
// String in, String out
val printlnDoFn = new DoFn[String, String]() {
@ProcessElement
def process(ctx: ProcessContext): Unit = {
val e = ctx.element()
println(s"[printlnDoFn] >>> $e")
ctx.output(e)
}
}