这个问题在这里已有答案:
我用来解析CSV的代码
val ListOfNames = List("Ramesh","Suresh","Ganesh") //Dynamical will add list of names
val Seperator = ListOfNames.map(x => x.split(",") //mkString(",")
sc.parallelize(Array(seperator)).toDF().csv("path")
获得输出:
"Ramesh,Suresh,Ganesh" // Hence entire list into a single column in CSV
预期产量:
Ramesh, Suresh, Ganesh // each name into a single column in CSV
输出应该在一行中,每个字符串应该在每个列中以逗号分隔。
如果我尝试更改任何内容,则表示CSV数据源不支持字符串数据类型数组。
怎么解决这个?
如果您要将大小为n的列表转换为一个火花数据帧,该数据帧只包含一列的n行,那么解决方案将如下所示:
import sparkSession.sqlContext.implicits._
val listOfNames = List("Ramesh","Suresh","Ganesh")
val df = listOfNames.toDF("names")
df.show(false)
输出:
+------+
|names |
+------+
|Ramesh|
|Suresh|
|Ganesh|
+------+