如何将 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 文件格式? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

thinkphp 如何将数组转换成字符串

如何在 Scala 中将 Array[(Double, Double)] 转换为 Array[Double]?

如何将字典转换为数组

Scala 将 WrappedArray 或 Array[Any] 转换为 Array[String]

string字符串转换为array(互换)

scala 将 Array[String] 转换为案例类