我有一个数据框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(使用前将#替换为@)