Apache Spark - Scala - HashMap (k, HashMap[String, Double](v1, v2,..)) 到 ((k,v1),(k,v2),...)
Posted
技术标签:
【中文标题】Apache Spark - Scala - HashMap (k, HashMap[String, Double](v1, v2,..)) 到 ((k,v1),(k,v2),...)【英文标题】:Apache Spark - Scala - HashMap (k, HashMap[String, Double](v1, v2,..)) to ((k,v1),(k,v2),…) 【发布时间】:2016-07-21 14:39:20 【问题描述】:我明白了:
val vector: RDD[(String, HashMap[String,Double])] = [("a", ("x",1.0),("y", 2.0),...]
我想得到:
RDD[String,(String,Double)] = [("a",("x",1.0)), ("a", ("y", 2.0)), ...]
如何使用 FlatMap 完成?欢迎提供更好的解决方案!
【问题讨论】:
【参考方案1】:试试:
vector.flatMapValues(_.toSeq)
【讨论】:
错误:值 flatMapValues 不是 scala.collection.mutable.HashMap[String,Double] 的成员 vector 只是 RDD 的名称,可以是任何东西。 我尝试了这个:vector.flatMapValues(x => x)。它工作得很好。感谢您的提示!以上是关于Apache Spark - Scala - HashMap (k, HashMap[String, Double](v1, v2,..)) 到 ((k,v1),(k,v2),...)的主要内容,如果未能解决你的问题,请参考以下文章
Spark笔记整理:spark单机安装部署分布式集群与HA安装部署+spark源码编译
在 Bash 脚本中执行 Apache Spark (Scala) 代码