Разобрать две разные схемы в клей и объединить их в одну таблицу - PullRequest
0 голосов
/ 05 июля 2019

Допустим, у меня есть два набора данных. Первый имеет следующие столбцы

(AA11, AA22, AA33, AA44)

И второй имеет следующее

(BB11, BB22, BB33, BB44, BB55)

Я храню данные в корзине и разделяю их на следующую файловую структуру

Сайт = A

-> Единица = A

-> AA.CSV

Сайт = B

-> Единица = B

-> BB.CSV

Если Сайт - это папка верхнего уровня, Модуль - это подпапка сайта, а файлы .csv находятся в папке модуля

Прямо сейчас, когда я анализирую эти файлы, Glue делает следующее

Определение всех вышеперечисленных столбцов как double или bigint. В одном случае он идентифицирует AA33 как двойной, а BB33 как bigint. Это вызвало несоответствие схемы между двумя таблицами. Я исправил эту ошибку, включив опцию «обновить все новые и существующие разделы с метаданными из таблицы». Однако это приводит нас к выпуску № 2

2.Клей объединяет данные из AA11 и BB11 и помещает их в столбец AA11, оставляя BB11 пустым. Например, под этими объединенными таблицами мы имеем следующее

AA11, AA22, AA33, AA44, BB55, BB11, BB22, BB33, BB44

Где столбцы AA11, AA22, AA33, AA44 содержат данные из BB11, BB22, BB33, BB44, и только столбец BB55 имеет свои уникальные данные.

Мне нужно, чтобы эти данные были отформатированы следующим образом

AA11, AA22, AA33, AA44, BB11, BB22, BB33, BB44, BB55

Где ВСЕ столбцы имеют свои уникальные данные. Еще один способ сказать, что у меня есть разделы (BB), которые объединяются в общей схеме. Но мне не нужно их объединять, столбцы не эквивалентны. AA - это другой набор данных от BB с другими данными столбца. Вместо этого я хотел бы, чтобы Glue объединял данные столбцов только в столбцах, которые имеют одно и то же имя, а не в схеме разделов, возможно ли это?

Если нет, то существует ли надежное автоматизированное решение для раздельного анализа этих двух таблиц и их объединения? Прямо сейчас у меня есть одно большое ведро S3, куда загружаются все данные. Полагаю, у меня может быть своеобразное ведро S3 для каждого набора данных со своим собственным сканером, но это быстро становится проблемой. Каждый раз, когда вы добавляете набор данных, оператор соединения должен обновляться вместе с новым сканером.

Честно говоря, возможно, все это проще сделать с помощью лямбды. Просто попросите их загрузить свои данные в корзину, сохранить структуру файлов Site и Unit, а затем программно объединить все файлы CSV в один большой. Затем попросите клей разобрать этот файл.

...