Apache spark pySpark(v2.4)DataFrameReader在列名中添加了前导空格

Apache spark pySpark(v2.4)DataFrameReader在列名中添加了前导空格,apache-spark,pyspark,apache-spark-sql,Apache Spark,Pyspark,Apache Spark Sql,以下是我拥有的CSV文件的一个片段: "Index", "Living Space (sq ft)", "Beds", "Baths", "Zip", "Year", "List Price ($)" 1, 2222, 3, 3.5, 32312, 1981, 250000 2, 1628, 3, 2, 32308, 2009, 185000 3,

以下是我拥有的CSV文件的一个片段:

"Index", "Living Space (sq ft)", "Beds", "Baths", "Zip", "Year", "List Price ($)"
 1,       2222,                   3,      3.5,    32312, 1981,    250000
 2,       1628,                   3,      2,      32308, 2009,    185000
 3,       3824,                   5,      4,      32312, 1954,    399000
 4,       1137,                   3,      2,      32309, 1993,    150000
 5,       3560,                   6,      4,      32309, 1973,    315000
奇怪的是,当我执行以下pySpark(v2.4)语句时,标题列名(减去第一列)有前导空格。我尝试了不同的
quote
escape
选项
,但没有效果

有人知道为什么会发生这种情况,以及如何在加载时去掉多余的空白吗?提前谢谢你

>>> csv_file = '/tmp/file.csv'

>>> spark_reader.format('csv')

>>> spark_reader.option("inferSchema", "true")
>>> spark_reader.option("header", "true")
>>> spark_reader.option("quote", '"')

>>> df = spark_reader.load(csv_file)

>>> df.columns
['Index', ' "Living Space (sq ft)"', ' "Beds"', ' "Baths"', ' "Zip"', ' "Year"', ' "List Price ($)"']
在的文档中,您可以使用
ignoreLeadingWhiteSpace
参数

ignoreLeadingWhiteSpace–指示是否应跳过正在读取的值的前导空格的标志。如果未设置,则使用默认值false

在您的情况下,您只需添加:

spark\u reader.option(“忽略引导空格”、“true”)
在的文档中,您可以使用
ignoreLeadingWhiteSpace
参数

ignoreLeadingWhiteSpace–指示是否应跳过正在读取的值的前导空格的标志。如果未设置,则使用默认值false

在您的情况下,您只需添加:

spark\u reader.option(“忽略引导空格”、“true”)

这是因为标题中的逗号后面有一个空格(分隔符是
)。将参数设置为
True
(默认为
False
)@pault Oh我明白了。你为什么不把它作为答案贴出来,这样我就可以投票接受了。谢谢。这是因为在标题中的逗号后面有一个空格(分隔符是
)。将参数设置为
True
(默认为
False
)@pault Oh我明白了。你为什么不把它作为答案贴出来,这样我就可以投票接受了。谢谢,太好了,保罗。这解决了我的问题。我以前从来没有在逗号周围加过空格,但是所有的东西都是第一次=:)非常感谢。太好了@pault。这解决了我的问题。我以前从来没有在逗号周围加过空格,但所有的东西都是第一次=:)非常感谢。