Spark:将具有空值的CSV写入为空列 [英] Spark: write a CSV with null values as empty columns

查看:754
本文介绍了Spark:将具有空值的CSV写入为空列的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I'm using PySpark to write a dataframe to a CSV file like this:

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

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

There is a column in that dataframe of type string. Some of the values are null. These null values display like this:

...,"",...

我希望它们改为这样显示:

I would like them to be display like this instead:

...,,...

csv.write()中使用选项是否可以实现?

Is this possible with an option in csv.write()?

谢谢!

推荐答案

轻松设置了emptyValue选项

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

emptyValue: sets the string representation of an empty value. If None is set, it use the default value, "".

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

这篇关于Spark:将具有空值的CSV写入为空列的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆