pyspark数据帧返回不同字符\“\&引用;而不是空值

pyspark数据帧返回不同字符\“\&引用;而不是空值,pyspark,null,Pyspark,Null,我正在从hadoop中读取一个fixed with文件,然后执行substr并将其转换为分隔符文件。代码工作正常,但如果为null,则返回的不是emply值而是\“\”。你能建议一下吗 片段 df.select( df.value.substr(31, 1).alias('status'), df.value.substr(32, 1).alias('tin_cert'), df.value.substr(116, 1).alias('c_notice_flg'), df.value.subst

我正在从hadoop中读取一个fixed with文件,然后执行substr并将其转换为分隔符文件。代码工作正常,但如果为null,则返回的不是emply值而是\“\”。你能建议一下吗

片段

df.select(
df.value.substr(31, 1).alias('status'),
df.value.substr(32, 1).alias('tin_cert'),
df.value.substr(116, 1).alias('c_notice_flg'),
df.value.substr(117, 2).alias('nbr_non_prime_trlrs'),
df.value.substr(119, 3).alias('aw_related')
).write.option("delimiter", "|").csv(unixFile)
输出

|\“0”N“00”199|

期望输出

||0 | N | 00 | 199|

输入文件中没有引号

0000000000 1499999999281aaaaaaaaaaaaaaaaaaaaaa1nn00
0000000000 24 200bbbbbbbbbbbbbbbbbb 0NN00
0000000000 34 200 0NN00

0000000000 44 200 0NN00

我认为添加转义引号是因为
pyspark.sql.DataFrameWriter.csv
方法的默认参数。事实上,正如您可以从中看到的:

quote–设置用于转义带引号的值的单个字符,其中分隔符可以是值的一部分如果未设置,则使用默认值,
如果设置空字符串,则使用
u0000
(空字符)

escape–设置用于在已引用值内转义引号的单个字符。如果未设置任何字符,则使用默认值,
\


如果您
\“\”
这仅仅意味着文本中有双引号,那么您是否也可以提供输入数据。因此spark将\char用作转义字符。添加的输入文件..它删除了空格,但输入的固定宽度文件没有引号