Size: a a a

2021 August 30

t

tenKe in Moscow Spark
я в курсе этой опции) она не мержила такие варианты раньше
источник

SI

Sergey Ivanychev in Moscow Spark
а у вас какая версия спарка?
источник

ИК

Иван Калининский... in Moscow Spark
В общих чертах, как я буду делать задачу изменения атрибутов таблиц в Hadoop:
1. Определяем изменения и формально описываем их инстансом класса (кейс класса в scala)
2. Читаем кастомным FileSourceScanExec все файлы, имя файла при этом становится одним из атрибутов, который FileScanRdd добавит к данным, должны быть метаданные для сопоставления файлов конечной таблицы (которая ещё не поменялась) и исходной (которую изменили)
3. Читаем все требуемые поля, а также первичный ключ из таблицы, где изменены данные
4. Обеспечиваем полностью эквивалентные распределения RDD для SortMergeJoin
5. Производим SortMergeJoin, получаем RDD с новой схемой, в этом поможет класс из п.2
6. Записываем кастомным FileWriter, восстанавливая имя файла, во временную директорию
7. Заменяем содержимое таблицы записанными файлами
8. При необходимости правим Hive DDL

После этого должна получиться полностью консистентная таблица, эквивалентная источнику как по составу, так и по данным. Как ни прочитай, всё будет правильно))
источник

ЕГ

Евгений Глотов... in Moscow Spark
источник

ЕГ

Евгений Глотов... in Moscow Spark
Технологии нас обогнали)
источник

t

tenKe in Moscow Spark
хм, и правда мержит, даже в 2.4.5
источник

t

tenKe in Moscow Spark
сорян, был неправ
источник

ИК

Иван Калининский... in Moscow Spark
мержит или нет, если в таблице пара сотен тысяч файлов, то смотреть будет грустно(
источник

SI

Sergey Ivanychev in Moscow Spark
фокус, которым я хотел воспользоваться, это указание новой схемы в момент чтения — по идее это тоже работает
источник

t

tenKe in Moscow Spark
эт да
источник

ИК

Иван Калининский... in Moscow Spark
Если работает, что не так с этим способом?
источник

SI

Sergey Ivanychev in Moscow Spark
он пишет на диск всю таблицу и читает, чтобы только покастить схему
источник

SI

Sergey Ivanychev in Moscow Spark
по сути только один большой «не так»
источник

ЕГ

Евгений Глотов... in Moscow Spark
У тебя уже есть таблица от коллеги
источник

ЕГ

Евгений Глотов... in Moscow Spark
Тебе-то её не нужно писать
источник

SI

Sergey Ivanychev in Moscow Spark
не, у меня есть моя SCD2 таблица, на основе таблицы коллеги
источник

SI

Sergey Ivanychev in Moscow Spark
коллега на изи перезаписывает свою таблицу каждый день, пересчитывая ее с нуля в ETL
источник

SI

Sergey Ivanychev in Moscow Spark
у него все отлично
источник

ИК

Иван Калининский... in Moscow Spark
Так можно не писать, кинуть туда where(lit(false))
источник

ИК

Иван Калининский... in Moscow Spark
схема сохранится, данные - нет, спарк это хорошо умеет
источник