PySpark read.csv - взаимодействие между inferSchema и параметрами режима - PullRequest
0 голосов
/ 23 октября 2018

Я пытаюсь прочитать CSV при выводе схемы:

df = spark.read.csv('path/to/csv',
inferSchema=True,
header=True)

Однако в моих данных есть несколько искаженных строк, что приводит к тому, что значения из некоторых столбцов перетекают в соседние столбцы.

Поэтому я установил режим в DROPMALFORMED:

df = spark.read.csv('path/to/csv',
inferSchema=True,
header=True,
mode='DROPMALFORMED')

Это избавляет от искаженных строк, но типы данных, которые я получаю из inferSchema, такие же, как и раньше.

ДляНапример, один столбец был плавающим, за исключением искаженной строки, в которую вставлена ​​строка.Итак, в первой версии кода был выведен столбец строкового типа.Я ожидал, что после добавления опции DROPMALFORMED он будет правильно выводить столбец с плавающим типом, но вместо этого я все еще получу строковый тип.

Есть ли способ заставить его выводить схему после удаления искаженных строк?Или я должен восстановить без искаженных строк, а затем перечитать данные?

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