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 HA集群搭建

Spark笔记整理:spark单机安装部署分布式集群与HA安装部署+spark源码编译

Spark的HA部署

在 Bash 脚本中执行 Apache Spark (Scala) 代码

Apache Hadoop集群安装(NameNode HA + SPARK + 机架感知)

Spark学习(四)Spark2.3 HA集群的分布式安装