Spark 2.0.x 从包含一个字符串类型数组的数据帧转储 csv 文件

2024-04-27

我有一个数据框df包含一列数组类型

df.show()好像

|ID|ArrayOfString|Age|Gender|
+--+-------------+---+------+
|1 | [A,B,D]     |22 | F    |
|2 | [A,Y]       |42 | M    |
|3 | [X]         |60 | F    |
+--+-------------+---+------+

我试着把它扔掉df在 csv 文件中,如下所示:

val dumpCSV = df.write.csv(path="/home/me/saveDF")

由于该列而无法正常工作ArrayOfString。我收到错误:

CSV数据源不支持数组字符串数据类型

如果我删除该列,该代码就可以工作ArrayOfString。但我需要保留ArrayOfString!

转储包含列 ArrayOfString 的 csv 数据帧的最佳方法是什么(ArrayOfString 应转储为 CSV 文件上的一列)


如果您已经知道哪些字段包含数组,则不需要 UDF。您可以简单地使用 Spark 的强制转换函数:

import org.apache.spark.sql.functions._
val dumpCSV = df.withColumn("ArrayOfString", col("ArrayOfString").cast("string"))
                .write
                .csv(path="/home/me/saveDF")

希望有帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Spark 2.0.x 从包含一个字符串类型数组的数据帧转储 csv 文件 的相关文章

随机推荐