Искатель неправильно сортирует данные, когда столбец встречается только в некоторых CSV - PullRequest
0 голосов
/ 14 января 2019

Я пытаюсь настроить озеро данных. Мы поместили несколько 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

Никто не работал, чтобы решить эту проблему. Могу ли я использовать настройку, которая не сломается таким образом?

Ответы [ 2 ]

0 голосов
/ 16 января 2019

Установите флажок

Обновить все новые и существующие разделы метаданными из таблицы.

на гусеничном ходу

0 голосов
/ 15 января 2019

Структура файлов неизменна. Athena - это просто служба запросов к файлам S3. «Добавить только новые столбцы» работает, когда столбцы добавляются в конце, а не в любом месте.

enter image description here

...