Свинья: загрузить в таблицу, а затем перезаписать эту таблицу после преобразования

Допустим, у меня есть таблица:

db.table

Я загружаю таблицу, делаю с ней какие-то преобразования и, наконец, пытаюсь ее сохранить

mytable = LOAD 'db.table' USING HCatLoader();

.
.
-- My transforms
.
.

STORE mytable_final INTO 'db.table' USING HCatStorer();

Но код жалуется, что я пишу в таблицу с существующими данными.

Я просмотрел этот тикет JIRA, который кажется неактивным (я пытались использовать FORCE и OVERWRITE в нескольких местах команды STORE).

Я также просмотрел этот пост SO, но автор загружает из одного места и сохраняет в другом месте. Если я использую то, что есть в этом посте, результатом преобразования не будет данных. Удалить файлы не вариант. Я думаю о временном хранении файлов, но не знаю, лучший ли это вариант.

Я пытаюсь получить поведение, которое вы получаете в Hive, используя INSERT OVERWRITE.


person Marko Galesic    schedule 07.10.2013    source источник
comment
Почему вы говорите, что удаление файлов не вариант?   -  person reo katoa    schedule 07.10.2013
comment
Должен был уточнить - удаление файлов перед выполнением Store, которое заставляет Pig выполняться в DAG (т.е. преобразование), не вариант. Мы ничего не получим в результате, если сделаем это.   -  person Marko Galesic    schedule 07.10.2013
comment
Я столкнулся с аналогичной проблемой. Я получаю следующее исключение. org.apache.hcatalog.common.HCatException : 2003 : Неразделенная таблица уже содержит данные: имя_таблицы. Когда я изменил свою таблицу на внешнюю таблицу, исключение исчезло, но сценарий по-прежнему не работает без трассировки стека исключений.   -  person Chetan Shirke    schedule 03.03.2014


Ответы (1)


Я не знаком с HCatLoader и HCatStorer. Но если вы LOAD из HDFS и STORE в HDFS, Pig предоставляет команды оболочки, которые позволяют вам выполнять удаление и перемещение из вашего скрипта.

STORE A INTO '/this/path/is/temporary';
RMF '/this/path/is/permanent';
MV '/this/path/is/temporary' '/this/path/is/permanent';
person reo katoa    schedule 07.10.2013