Я пытаюсь прочитать 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 он будет правильно выводить столбец с плавающим типом, но вместо этого я все еще получу строковый тип.
Есть ли способ заставить его выводить схему после удаления искаженных строк?Или я должен восстановить без искаженных строк, а затем перечитать данные?