【发布时间】:2018-03-18 14:11:11
【问题描述】:
如何将Maps 的Seq 合并到单个Map 即
Seq[Map[String, String]] => Map[String, String]
例如:
val someSeq = rdd.map(_._2).flatMap(...) //some transformation to produce the sequence of maps
其中someSeq 是Seq(student1, student2) 和student1 和student2 是Maps:
var student1 = Map(a -> "1", b -> "1")
var student2 = Map(c -> "1", d -> "1")
我需要这样的结果:
val apps = Map(a -> "1", b -> "1", c -> "1", d -> "1")
有什么想法吗?
【问题讨论】:
-
我不确定您的问题何时考虑到 Spark,但通常您会在 Scala 中使用
val apps = someSeq.flatten.toMap。 -
Seq在这里做什么?RDD不是Seq... -
@jwvh:好点,但两个地图都是独一无二的,但我也很想知道如何处理它。有什么建议吗?
-
@zero323:这只是我需要在我的 RDD 上执行的中间转换,例如
stream.transform{...flatmap(...)}.foreachRDD(...) -
但是
transform需要一个函数RDD[T] => RDD[U],不是吗?那么输出映射适合哪里呢?或者,如果您更喜欢rdd和someSeq的实际类型是什么?
标签: scala apache-spark spark-streaming scala-collections