Обновление / редактирование записей в формате Hdf с использованием Hive - PullRequest
0 голосов
/ 04 октября 2018

У меня есть записи о людях в HDFS.Я использую внешнюю таблицу в Hive для просмотра, анализа своих данных, а также могу использовать ее извне в других программах.Недавно у меня был случай, когда мне нужно обновить данные в HDFS.Согласно документации я узнал, что мы не можем обновлять или удалять данные, используя внешнюю таблицу.Еще одна проблема - данные не в формате ORC.Это на самом деле в формате TEXTFILE.Поэтому я не могу обновить или удалить данные во внутренней таблице тоже.Поскольку он находится в производстве, я не могу скопировать его в любое место, чтобы преобразовать его в формат ORC.Подскажите пожалуйста, как редактировать данные в HDFS.

1 Ответ

0 голосов
/ 04 октября 2018

Вы можете обновить или удалить с помощью INSERT OVERWRITE + выбрать из себя, используя фильтры и дополнительные преобразования:

insert overwrite table mytable
select col1, --apply transformations here
       col2, --for example: case when col2=something then something_else else col2 end as col2
       ...
      colN
  from mytable
 where ... filter out records you want to delete 

Этот подход будет работать как для внешнего и управляемого, так и для всех форматов хранения.Просто напишите select, который возвращает требуемый набор данных, и добавьте INSERT OVERWRITE.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...