Size: a a a

2021 October 21

ЕГ

Евгений Глотов... in Data Engineers
pip install pyspark
источник

A

Alexander in Data Engineers
спасибо, попробуем
источник

GB

Gennadiy Bbb in Data Engineers
Всем привет. Не удаляются записи с партиционированной таблицы. При выполнении delete в Impala получаю ошибку:
Impala does not support modifying a non-Kudu table.
Таблица гиганская и хранится в формате Parquet
Удалить нужно пару записей. Заморачиваюсь по следующему сценарию:
1. Копирую каталог таблицы с партициями
3. Создаю DDL таблицы. Делаю инвалидейт и рестор партиций.
2. Удаляю партицию в копии таблицы, которую нужно перезалить за исключением пары строк из источника
3. Делаю INSERT as SELECT WHERE (только по той партиции, которую правлю) + исключаю не нужные записи

Есть варианты проще?
источник

ИК

Иван Калининский... in Data Engineers
Если запросы пользователей не пострадают при изменении исходной таблицы, предлагаю сразу записать во временную таблицу только одну партицию, ту, которая изменяется. И записывать сразу с фильтром. Потом поменять папки местами (придётся дать другое название исходной папке). Восстановить метаданные и удалить всё ненужное

По пунктам:
1. CREATE TABLE temp.table_name PARTITIONED BY part_field LOCATION ‘temp/loc’ AS SELECT * FROM main.table WHERE part_field = ‘value’ AND key not in (del_key1, del_key2)
2. hdfs dfs -mv main/loc/part_field=value temp/loc/_part_field=value
3. hdfs dfs -mv temp/loc/part_field=value main/loc/part_field=value
4. Invalidate and restore по необходимости
5. Если всё прошло без ошибок, hdfs dfs -rm -r temp/loc; drop table temp.table_name

Первый пункт - единственный нагруженный
источник

GB

Gennadiy Bbb in Data Engineers
Т.е. работать только с той партицией, в которой нужно сделать изменения, а потом ее подменить на целевой, верно?
источник

ИК

Иван Калининский... in Data Engineers
да)
источник

GB

Gennadiy Bbb in Data Engineers
👍 Спасибо!
источник

E

Evgen in Data Engineers
Коллеги, кто сталкивался с такой задачей: Нужно скопировать данные между кластерами, предварительно сравнить имена  каталогов между источником и назначением, удалить совпадения в назначении и скопировать все с источника. Distcp  умеет вроде только синхронизировать каталог, что не очень подходит. Может есть какой штатный функционал ?
источник

DZ

Dmitry Zuev in Data Engineers
нету
источник

DZ

Dmitry Zuev in Data Engineers
мы делали руками, там работы на полчаса
источник

DZ

Dmitry Zuev in Data Engineers
ааа
источник

DZ

Dmitry Zuev in Data Engineers
хотя там же есть overwrite вроде
источник

ЕГ

Евгений Глотов... in Data Engineers
Скопировать дистцп в соседнюю папку, дальше на жавке написать прогу, которая удаляет и мувит
источник

E

Evgen in Data Engineers
Точно, так тоже подойдёт. Спасибо
источник

ЕГ

Евгений Глотов... in Data Engineers
Ток проверяй внимательно пути к тому, что удаляешь, а то так можно всё удалить случайно)
источник

E

Evgen in Data Engineers
У меня данных 100Тб каталогов 350к. Я вечность буду такое делать руками
источник

DZ

Dmitry Zuev in Data Engineers
так же работы на полчаса
источник

DZ

Dmitry Zuev in Data Engineers
кто сказал руками
источник

DZ

Dmitry Zuev in Data Engineers
пишешь скрипт на 5 строк
источник

E

Evgen in Data Engineers
Можно пример, в личку ?
источник