如何在火花数据帧csv输出和UTF-8-BOM编码中添加特殊字符分隔符

时间:2017-10-04 16:27:56

标签: csv apache-spark spark-dataframe spark-csv

我必须将我的spark数据帧输出写入带有“| ^ |”Delimiter的csv文件中。 我想这样做。

df.write.format("csv").option("delimiter", "\\|\\^\\|")

但低于错误

  

java.lang.IllegalArgumentException:分隔符不支持的特殊字符:\ | \ ^ \ |

如何添加UTF-8-BOM编码输出文件,默认情况下是UTF-8?

在java中,如果我在文件的开头添加“\ uFEFF”,文件的编码将更改为UTF8-BOM。现在我如何在spark csv中附加此char?

此外,如果我采用以下方法df.rdd.map(x=>x.mkString("|^|")).saveAsTextFile("dir path to store")

我如何根据数据框中的列对数据进行分区?

1 个答案:

答案 0 :(得分:1)

刚刚放

 df.write.format("csv").option("delimiter","^").csv("dir path to store")

对于MULTI字符,您可以使用以下代码

 df.rdd.map(x=>x.mkString("|^|")).saveAsTextFile("dir path to store")