Ich bin auf der Suche nach einer Möglichkeit, die Spalte basierend auf kommagetrennten Daten zu teilen. Unten ist mein DatasetHive - Split getrennte Spalten über mehrere Zeilen, wählen Sie basierend auf der Position
id col1 col2
1 5,6 7,8
ich das Ergebnis
id col1 col2
1 5 7
1 6 8
Die Position des Index übereinstimmen sollte zu bekommen, weil ich dementsprechend Ergebnisse holen müssen.
Ich versuchte die folgende Abfrage, aber es gibt das kartesische Produkt zurück.
Abfrage:
SELECT col3, col4
FROM test ext
lateral VIEW explode(split(col1,'\002')) col1 AS col3
lateral VIEW explode(split(col2,'\002')) col2 AS col4
Ergebnis:
id col1 col2
1 5 7
1 5 8
1 6 7
1 6 8
Mögliche Duplikat [Hive Aufreißen/Seitenansicht mehrere Arrays] (http://stackoverflow.com/questions/20667473/hive-explode -lateral-view-multiple-arrays) – gobrewers14