如何将Flow [T,Seq [Seq [String]],NotUsed]扁平化为Flow [T,Seq [String],NotUsed]

时间:2018-09-19 12:56:31

标签: akka-stream

我有一个类型为Flow [T,Seq [Seq [String]],NotUsed]的流。

我想以示例流的方式对其进行扁平化

ev1: Seq(Seq("a", "b"), Seq("n", "m")
ev2: Seq(Seq("x", "y"))

应成为以下流:

ev1: Seq("a", "b")
ev2: Seq("n", "m")
ev3: Seq("x", "y")

1 个答案:

答案 0 :(得分:2)

使用mapConcat(identity)

  implicit val actorSystem = ActorSystem()
  implicit val materializer = ActorMaterializer()

  val events = Vector(
    Vector(Vector(1, 2), Vector(3, 4)),
    Vector(Vector(5, 6))
  )

  Source.apply(events)
    .mapConcat(identity)
    .runForeach(println)

  actorSystem.terminate()

打印

Vector(1, 2)
Vector(3, 4)
Vector(5, 6)

通常,您可以使用mapConcat将事件序列平铺到主流中。