Я пытаюсь сканировать некоторые файлы с разными пакетами (совместимые с данными) с помощью AWS Glue.
Как я прочитал в документации AWS, сканеры Glue обновляют таблицы каталога для любых изменений в схеме (добавление новых столбцов и удаление отсутствующих столбцов).
Я проверял «Обновить определение таблицы в каталоге данных» и «Создать отдельную схему для каждого пути S3» при создании искателя.
Пример:
скажем, у меня есть файл "File1.csv", как показано ниже:
имя, возраст, LOC
Ravi, 12, Ind
Joe, 32, США
Скажем, у меня есть другой файл "File2.csv", как показано ниже:
имя, возраст, высота
Джек, 12160
Джейн, 32180
После запуска сканеров в схеме было обновлено:
имя, возраст, местонахождение, рост
но когда я попытался прочитать файлы с помощью Athena или попытался записать содержимое обоих файлов в csv с помощью задания Glue ETL, я заметил, что:
вывод выглядит так:
имя, возраст, LOC, высота
Ravi, 12, Ind ,,
Joe, 32, США ,,
Джек, 12160 ,,
Джейн, 32180 ,,
последние две строки должны иметь пустое значение для loc, поскольку во втором файле не было столбца loc.
где, как и ожидалось:
имя, возраст, LOC, высота
Ravi, 12, Ind ,,
Joe, 32, США ,,
Jack, 12,, 160
Jane, 32,, 180
Короче говоря, клей пытается заполнить столбец непрерывным образом в комбинированном выводе. Есть ли способ получить ожидаемый результат?