Объединение двух паркетных файлов с разными схемами - PullRequest
0 голосов
/ 06 сентября 2018

У меня есть две папки для паркета, паркет А имеет 137 столбцов, а паркет В - 110 столбцов. Паркет Файл имеет всю историю таблицы. Таким образом, Паркет А имеет все поля для всей истории стола. Паркет B - это все значения, которые я сегодня выбрал, и 17 столбцов были удалены. Я хочу объединить паркет A с паркетом B, но у них не одинаковое количество колонн. Так что это терпит неудачу каждый раз.

Я пробовал mergeSchema, но это не удалось. Можно ли добавить отсутствующие столбцы в паркет B и добавить нули. Тогда сделайте союз?

1 Ответ

0 голосов
/ 06 сентября 2018

Я бы порекомендовал вам загружать оба файла паркета в Spark в виде фреймов данных и использовать преобразования для соответствия схемам фреймов данных.Исходя из того, что вы описываете, звучит так, будто вы хотите преобразовать Parquet A (таблицу большего размера) так, чтобы он соответствовал схеме Parquet B.Функция столбца «drop» - простой способ сделать это [документы] .

Вот пример, который я написал, где паркет A имеет 5 столбцов, а паркет B - 4 столбцов.

Отображение схем двух таблиц (фреймов данных): schema print

Удаление дополнительного столбца и создание объединения двух таблиц (фреймов данных): union

...