pySpark (v2.4) DataFrameReader добавляет начальные пробелы к именам столбцов - PullRequest
0 голосов
/ 06 декабря 2018

Вот фрагмент файла 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 ($)"']

1 Ответ

0 голосов
/ 06 декабря 2018

Из документов для pyspark.sql.DataFrameReader можно использовать параметр ignoreLeadingWhiteSpace.

ignoreLeadingWhiteSpace - флаг, указывающий, следует ли указывать начальные пробелы из читаемых значенийбыть пропущеннымЕсли None установлен, он использует значение по умолчанию, false.

В вашем случае вам просто нужно добавить:

spark_reader.option("ignoreLeadingWhiteSpace", "true")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...