Я пытаюсь настроить озеро данных. Мы поместили несколько CSV в S3 в формате (упрощенном для вопросов):
bucket
|-- report_type1
|-- file1.csv
|-- file2.csv
|-- report_type2
|-- file3.csv
|-- file4.csv
|-- file5.csv
|-- report_type3
etc . . .
Я хочу взять это озеро и перенести части данных в красное смещение, а также сделать запрос на озеро Афина. Для этого я запускаю гусеничный ход с помощью клея. Искатель запускается, создает несколько таблиц (report_type1, report_type2, report_type3, ...) и завершает работу.
Однако, когда я запрашиваю у Афины, чтобы проверить, сработало ли это, я вижу, что некоторые столбцы не назначаются соответствующим образом в Афине. Например, file1.csv выглядит так:
col0, col1, col2
0, 1, 3
2, 4, 9
2, 1, 7
но file2.csv выглядит так:
col0, new_col, col1, col2
1, 3, 12, 8
3, , 10, 2
7, , 0,
Итак, при обработке второго набора данных мы нашли дополнительный столбец. Это допустимые столбцы, которые должны быть записаны ... но поскольку их не было в данных первого файла, они там не были добавлены.
То, что я в конечном итоге вижу, я буду спрашивать как:
SELECT col1 FROM report_type1
в Афине, и я увижу, что col2 смещен, и теперь я вижу значения для col2 под именем col1. Я предполагаю, что это как-то связано с дополнительными входящими столбцами. Я попытался запустить сканер со всеми различными «что делать, когда вы находите новый столбец»
* Update the table definition in the data catalog.
* Add new columns only.
* Ignore the change and don't update the table in the data catalog
Никто не работал, чтобы решить эту проблему. Могу ли я использовать настройку, которая не сломается таким образом?