Actuellement, je résous mon problème initial avec ce sujet : Hadoop/Hive - Diviser une seule ligne en plusieurs lignes et stocker dans une nouvelle table.

Est-ce que n'importe qui a une idée comment créer une nouvelle table avec les sous-marins groupés ?

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

Avec le code ci-dessous, j'obtiens le retour que je recherche mais je n'arrive pas à comprendre comment enregistrer la sortie dans une nouvelle table

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

Merci Nico

0
Nicola 5 nov. 2020 à 18:56

1 réponse

Meilleure réponse

Dans Hive, vous pouvez utiliser create ... as select ... :

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

Cela crée une nouvelle table et initie son contenu à partir du jeu de résultats de la requête. Si la nouvelle table existe déjà, utilisez plutôt 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
0
GMB 5 nov. 2020 à 15:57