Apache spark pySpark(v2.4)DataFrameReader在列名中添加了前导空格
以下是我拥有的CSV文件的一个片段: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,
"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。这解决了我的问题。我以前从来没有在逗号周围加过空格,但所有的东西都是第一次=:)非常感谢。