akka-stream - 如何将 Flow[T, Seq[Seq[String]], NotUsed] 展平为 Flow[T, Seq[String], NotUsed]
问题描述
我有一个 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")
解决方案
使用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
您可以将事件序列展平为主流。
推荐阅读
- opencv - 级联分类器不能正常工作(或者根本不工作)
- clojure - Quil 将图像加载到已创建的小程序中
- algorithmic-trading - 如何确定价格是否在特定时间范围内返回到某个值区域
- windows - 删除空行
- r - 在 R 中使用 list.files 时忽略隐藏文件
- android - Flutter 应用程序在最新更新后无法运行
- pandas - 在数据库中找到两列的对应值(df)
- c - C: 试图在一个带有结构的函数中创建一个点
- sql - 在保持行号顺序的同时删除分区中的重复项
- javascript - AWS Dynamodb 配置中缺少凭证,如果使用 AWS_CONFIG_FILE,则设置 AWS_SDK_LOAD_CONFIG=1