Spark:将空值作为空列写入CSV
我使用PySpark将数据帧写入CSV文件,如下所示:Spark:将空值作为空列写入CSV,csv,apache-spark,pyspark,Csv,Apache Spark,Pyspark,我使用PySpark将数据帧写入CSV文件,如下所示: df.write.csv(PATH, nullValue='') ...,"",... 该数据帧中有一列类型为string。有些值为空。这些空值显示如下: df.write.csv(PATH, nullValue='') ...,"",... 我希望它们能像这样展示: ...,,... 在csv.write()中有一个选项可以这样做吗 谢谢 通过设置emptyValue选项轻松 emptyValue:设置空值的字符串表示形式。如果
df.write.csv(PATH, nullValue='')
...,"",...
该数据帧中有一列类型为string。有些值为空。这些空值显示如下:
df.write.csv(PATH, nullValue='')
...,"",...
我希望它们能像这样展示:
...,,...
在csv.write
()中有一个选项可以这样做吗
谢谢 通过设置
emptyValue
选项轻松
emptyValue
:设置空值的字符串表示形式。如果未设置,则使用默认值“”
来自pyspark导入行
从pyspark.shell导入spark
df=spark.createDataFrame([
行(列1=None,列2='20151231',列3='Hello'),
行(列1=2,列2='20160101',列3=None),
行(列1=3,列2=None,列3='World')
])
csv(路径,头=真,空值=“”)
输出
col_1,col_2,col_3
,20151231,Hello
2,20160101,
3,,World
是否需要设置
空值
?如果删除该选项,它是否默认不写任何内容?使用和不使用nullValue
时,它都会执行相同的操作。设置nullValue=''
是我第一次尝试修复该问题,但没有成功。您可以尝试改为执行df.fillna('').write.csv(PATH)
。基本上强制所有空列为空字符串。我不确定这是否可行,空字符串在输出CSV.interest中也写为“”。如果您的数据文件不太大,您可能需要考虑将其转换为大数据DATAFRAME,然后进行写入。那可能有用,真奇怪。当我使用df.write.format('csv').option('nullValue',None.).save(PATH)
时,它会写入空值。但是当我像df.write.csv(PATH,nullValue=None)
那样使用它时,它会写入emtpy字符串值-双引号