Estrai più elementi stringa nella colonna della tabella utilizzando Impala o Hive
Aug 21 2020
Ho una colonna A i cui elementi sono costituiti da elenchi con più elementi stringa (non array), come ad esempio:
**A**
1 'A123','B234','C123'
2 'A123','B234'
3 'A124',
La quantità di elementi dell'elenco varia tra i record. Gli elementi della lista tuttavia sono sempre della stessa lunghezza e sono separati da una virgola.
Ho bisogno di estrarre questi elementi stringa in una tabella/lista separata B e ottenere gli elementi distinti come:
**B**
1 'A123'
2 'A124'
3 'B234'
4 'C123'
Come posso farlo usando SQL? Sto usando Impala o Hive Sto usando Cloudera Hue per l'analisi.
Grazie,
KS
Risposte
3 serge_k Aug 21 2020 at 15:39
Utilizzare prima lateral view explode
per creare una colonna con elementi di matrice, quindi dettare, ad es
SELECT distinct elem as col1
FROM tableA LATERAL VIEW explode(split(array_column, ',')) aTable AS elem
Consulta il manuale di Hive per maggiori dettagli sulateral view