Hive-Tabelle Array-Spalten - explodieren mit array_index
Hallo, ich habe eine Hive-Tabelle
select a,b,c,d from riskfactor_table
In the above table B, C and D columns are array columns. Below is my Hive DDL
Create external table riskfactor_table
(a string,
b array<string>,
c array<double>,
d array<double> )
ROW FORMAT DELIMITED FIELDS TERMINATED BY '~'
stored as textfile location 'user/riskfactor/data';
Hier ist meine Tabelle Daten:
ID400S,["jms","jndi","jaxb","jaxn"],[100,200,300,400],[1,2,3,4]
ID200N,["eins","zwei","drei"],[212,352,418],[6,10,8]
Wenn ich will, um split-array-Spalten, wie kann ich Spalten?
Wenn ich benutze Funktion auflösen kann ich das split-array nur Werte für eine Spalte
wählen Sie explodieren(b) als b aus riskfactor_table;
Ausgabe:
jms
jndi
jaxb
jxn
one
two
three
Aber ich möchte, dass alle Spalten gefüllt werden, mithilfe einer select-Anweisung unten-
Abfrage select a,b,c,d aus risk_factor;
Ausgabe:
row1- ID400S jms 100 1
row2- ID400S jndi 200 2
row3- ID400S jaxb 300 3
row4- ID400S jaxn 400 4
Wie kann ich füllen Sie alle Daten?
Es ist unklar, was das gewünschte Ergebnis ist. Wo hast
Hi, ich habe korrigiert meine Ausgabe. Können Sie mir bitte helfen, wie kann ich Daten füllen? Auch wenn ich ein null-array-Wert oder Werte, die weniger als 4 Feldern, die in meinem Eingang, wie die Zuordnung des array-Spalten?
Mögliche Duplikate von Hive Explodieren / Seitliche Ansicht mehrerer arrays
diese hier habe ich ausprobiert .muss ich hinzufügen müssen, um eine jar-Datei?
Ya du brauchst das jar erwähnt, dass die Frage
ID400A
, ID401S
, und ID402E
kommen? Erscheinen Sie auf Magische Weise am Ende Ihre Frage.Hi, ich habe korrigiert meine Ausgabe. Können Sie mir bitte helfen, wie kann ich Daten füllen? Auch wenn ich ein null-array-Wert oder Werte, die weniger als 4 Feldern, die in meinem Eingang, wie die Zuordnung des array-Spalten?
Mögliche Duplikate von Hive Explodieren / Seitliche Ansicht mehrerer arrays
diese hier habe ich ausprobiert .muss ich hinzufügen müssen, um eine jar-Datei?
Ya du brauchst das jar erwähnt, dass die Frage
InformationsquelleAutor Sai | 2016-05-22
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies können Sie erreichen mit SEITLICHEN ANSICHT
weitere detail gehen, werfen Sie es .
als pro-Beispiel, das er sucht ist das kartesische Produkt .
Hallo, ich bin nicht auf der Suche für kartesische Produkt der drei Arrays.Grundsätzlich möchte ich alle Werte im array und laden Sie die Daten in Netezza-DB mit Hilfe von sqoop-export.
InformationsquelleAutor sandeep rawat
Ich war auch auf der Suche für die gleiche Frage die Lösung. Dank Jerome, für das Brickhouse Lösung.
Musste ich eine kleine änderung (neben der alias "n1 n"), wie unten, damit es funktioniert für meinen Fall:
Die einzige Sache ist, ich habe im Vorfeld zu wissen, dass es gibt 10 Elemente aufgelöst werden.
InformationsquelleAutor user2359902
Verwenden Sie die 'numeric_range' UDF von Brickhouse. Hier ist ein blog-posting beschreibt die details.
https://brickhouseconfessions.wordpress.com/2013/03/07/exploding-multiple-arrays-at-the-same-time-with-numeric_range/
In deinem Fall, deine query würde so etwas wie
InformationsquelleAutor Jerome Banks