我的RDD
格式如下。即RDD [(String,List [String])]
(abc,List(a,b))
(bcb,List(a,b))
我想将其转换为Dataframe
,如下所示
col1 col2 col3
abc a b
bcb a b
scala中最好的方法是什么?
答案 0 :(得分:0)
首先需要将List
的元素提取到元组中,而不是toDF
上使用RDD
(需要为此导入火花隐式转换)
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|
+----+----+----+