这是我拥有的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
options
,但无济于事。
有人知道为什么会这样吗,以及如何去除加载时多余的空白吗?预先谢谢你!
>>> 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 ($)"']
答案 0 :(得分:2)
在pyspark.sql.DataFrameReader
的文档中,您可以使用ignoreLeadingWhiteSpace
参数。
ignoreLeadingWhiteSpace –一个标志,指示是否应跳过正在读取的值中的前导空格。如果设置为None,则使用默认值false。
您的情况下,您只需要添加:
spark_reader.option("ignoreLeadingWhiteSpace", "true")