如何将 Array[String] 转换为 spark Dataframe 以保存 CSV 文件格式? [复制]
Posted
技术标签:
【中文标题】如何将 Array[String] 转换为 spark Dataframe 以保存 CSV 文件格式? [复制]【英文标题】:How to convert Array[String] into spark Dataframe to save CSV file format? [duplicate] 【发布时间】:2018-09-11 09:47:17 【问题描述】:我用来解析 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 数据源不支持字符串数据类型的数组。
如何解决?
【问题讨论】:
【参考方案1】:如果您希望将大小为 n 的列表转换为包含 n 行且只有一列的 spark 数据框,那么解决方案将如下所示:
import sparkSession.sqlContext.implicits._
val listOfNames = List("Ramesh","Suresh","Ganesh")
val df = listOfNames.toDF("names")
df.show(false)
输出:
+------+
|names |
+------+
|Ramesh|
|Suresh|
|Ganesh|
+------+
【讨论】:
如何使行明智而不是列,并且每个名称应该在每列而不是数组[String]以上是关于如何将 Array[String] 转换为 spark Dataframe 以保存 CSV 文件格式? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Scala 中将 Array[(Double, Double)] 转换为 Array[Double]?