Examples
Chain two pipelines¶
Simple UNIX-pipe style chaining of two pipelines:
import etl4s._
val p1 = Pipeline((i: Int) => i.toString)
val p2 = Pipeline((s: String) => s + "!")
val p3: Pipeline[Int, String] = p1 ~> p2
Complex chaining¶
Connect the output of two pipelines to a third:
import etl4s._
val namePipeline = Pipeline("John Doe")
val agePipeline = Pipeline(30)
val toUpper = Transform[String, String](_.toUpperCase)
val consoleLoad = Load[String, Unit](println(_))
val combined: Pipeline[Unit, Unit] =
for {
name <- namePipeline
age <- agePipeline
_ <- Extract(s"$name | $age") ~> toUpper ~> consoleLoad
} yield ()