Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spark:将空值作为空列写入CSV_Csv_Apache Spark_Pyspark - Fatal编程技术网

Spark:将空值作为空列写入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:设置空值的字符串表示形式。如果

我使用PySpark将数据帧写入CSV文件,如下所示:

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字符串值-双引号