将 RDD[(String,List[String])] 转换为 Dataframe
Convert RDD[(String,List[String])] to Dataframe
我的RDD
格式如下。即 RDD[(String,List[String])]
(abc,List(a,b))
(bcb,List(a,b))
我想把它转换成Dataframe
像下面这样
col1 col2 col3
abc a b
bcb a b
在 scala 中最好的方法是什么?
您首先需要将 List
的元素提取到一个元组中,然后您可以在 RDD
上使用 toDF
(为此需要导入 spark 隐式转换)
val rdd: RDD[(String, List[String])] = sc.parallelize(Seq(
("abc",List("a","b")),
("bcb",List("a","b"))
))
val df = rdd
.map{case (str,list) => (str,list(0),list(1))}
.toDF("col1","col2","col3")
df.show()
+----+----+----+
|col1|col2|col3|
+----+----+----+
| abc| a| b|
| bcb| a| b|
+----+----+----+
我的RDD
格式如下。即 RDD[(String,List[String])]
(abc,List(a,b))
(bcb,List(a,b))
我想把它转换成Dataframe
像下面这样
col1 col2 col3
abc a b
bcb a b
在 scala 中最好的方法是什么?
您首先需要将 List
的元素提取到一个元组中,然后您可以在 RDD
上使用 toDF
(为此需要导入 spark 隐式转换)
val rdd: RDD[(String, List[String])] = sc.parallelize(Seq(
("abc",List("a","b")),
("bcb",List("a","b"))
))
val df = rdd
.map{case (str,list) => (str,list(0),list(1))}
.toDF("col1","col2","col3")
df.show()
+----+----+----+
|col1|col2|col3|
+----+----+----+
| abc| a| b|
| bcb| a| b|
+----+----+----+