Scala和Spark,rdd从字典创建数据框

Posted

技术标签:

【中文标题】Scala和Spark,rdd从字典创建数据框【英文标题】:Scala And Spark , rdd to dataframe creation from of dictionary 【发布时间】:2017-08-28 18:37:24 【问题描述】:

您能告诉我如何从以下代码创建数据框吗?

val x =List(Map("col1"->"foo","col2"->"bar"))
val RDD =sc.parallelize(x)

输入如上图即RDD[Map[String, String]] 想要以 col1 和 col2 作为列名并将 foo 和 bar 作为单行转换为数据框。

【问题讨论】:

【参考方案1】:

您可以创建一个案例类,将 rdd 中的 Maps 转换为案例类,然后 toDF 应该可以工作:

case class r(col1: Option[String], col2: Option[String])

RDD.map(m => r(m.get("col1"), m.get("col2"))).toDF.show
+----+----+
|col1|col2|
+----+----+
| foo| bar|
+----+----+

【讨论】:

以上是关于Scala和Spark,rdd从字典创建数据框的主要内容,如果未能解决你的问题,请参考以下文章

在 pyspark 中使用 RDD 从字典创建数据框

Spark/Scala:仅使用 RDD 使用 ReduceByKey 创建嵌套结构

[Spark]-RDD之创建

spark总结5 RDD

来自现有 RDD 的数据框 - Python Spark

使用 Scala 在 Apache Spark 中连接不同 RDD 的数据集