Spark:将具有空值的CSV写入为空列

时间:2019-08-30 12:15:29

标签: csv apache-spark pyspark

我正在使用PySpark这样将数据帧写入CSV文件:

df.write.csv(PATH, nullValue='')

该数据框中有一个字符串类型的列。一些值是空的。这些空值显示如下:

...,"",...

我希望它们像这样显示:

...,,...

使用csv.write()中的选项可以做到这一点吗?

谢谢!

1 个答案:

答案 0 :(得分:2)

轻松设置emptyValue选项

emptyValue:设置一个空值的字符串表示形式。如果未设置,则使用默认值""

from pyspark import Row
from pyspark.shell import spark

df = spark.createDataFrame([
    Row(col_1=None, col_2='20151231', col_3='Hello'),
    Row(col_1=2, col_2='20160101', col_3=None),
    Row(col_1=3, col_2=None, col_3='World')
])

df.write.csv(PATH, header=True, emptyValue='')

输出

col_1,col_2,col_3
,20151231,Hello
2,20160101,
3,,World