Hadoop / Hive — разделить одну строку на несколько строк и сохранить в новой таблице

#sql #hadoop #hive #sql-insert #create-table

#sql #hadoop #улей #sql-вставка #создать-таблица

Вопрос:

В настоящее время я решаю свою первоначальную проблему с помощью этой темы: Hadoop / Hive — разделить одну строку на несколько строк и сохранить в новой таблице.

Кто-нибудь знает, как создать новую таблицу с сгруппированными подразделениями?

 ID  Subs
1   deep-learning, machine-learning, python
2   java, c  , python, javascript
  

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

 use demoDB 
Select id_main , topic_tag from demoTable
lateral view explode (split(topic_tag , ',')) topic_tag as topic
  

Спасибо
, Нико

Ответ №1:

В Hive вы можете использовать create ... as select ... :

 create table newtable as
select id_main, topic_tag 
from demoTable
lateral view explode (split(topic_tag , ',')) topic_tag as topic
  

Это создает новую таблицу и инициирует ее содержимое из результирующего набора запроса. Если новая таблица уже существует, используйте insert ... select вместо:

 insert into newtable (id_main, topic_tag)
select id_main, topic_tag 
from demoTable
lateral view explode (split(topic_tag , ',')) topic_tag as topic
  

Комментарии:

1. большое спасибо за ваш быстрый ответ и объяснение!