Dies ist die unter Hive Tabelle istExplode das Array von Struct in Hive
CREATE EXTERNAL TABLE IF NOT EXISTS SampleTable
(
USER_ID BIGINT,
NEW_ITEM ARRAY<STRUCT<PRODUCT_ID: BIGINT,TIMESTAMPS:STRING>>
)
Und dies sind die Daten in der obigen Tabellen-
1015826235 [{"product_id":220003038067,"timestamps":"1340321132000"},{"product_id":300003861266,"timestamps":"1340271857000"}]
Gibt es eine Möglichkeit, die unten Ausgang bekommen aus dem HiveQL nach dem explodieren des Arrays?
**USER_ID** | **PRODUCT_ID** | **TIMESTAMPS**
------------+------------------+----------------
1015826235 220003038067 1340321132000
1015826235 300003861266 1340271857000
Aktualisiert
ich diese Abfrage schrieb die Ausgabe in dem obigen Format zu bekommen, aber es ist mir nicht das Ergebnis in der Art und Weise gibt ich wollte.
SELECT myTable1.myCol1,myTable2.myCol2 FROM sampletable st LATERAL VIEW
explode(st.purchased_item.product_id) myTable1 AS myCol1 LATERAL VIEW
explode(st.purchased_item.timestamps) myTable2 AS myCol2;
Kann mir jemand helfen, was ich falsch mache? Irgendwelche Vorschläge werden geschätzt.
Wie wäre es mit so etwas? wählen User_id, prod_and_ts.product_id als product_id, prod_and_ts.timestamps als Zeitpunkte von sampleSeitenAnsicht explodieren (NEW_ITEM) exploded_table als prod_and_ts; –
@ Mark, Danke Mark, Es hat funktioniert, Kannst du das als Antwort posten, damit ich es annehmen kann. Und können Sie sich bitte auch diese SO Frage anschauen. [http://stackoverflow.com/questions/11336950/joing-two-tables-in-hive-using-hiveqlhadoop](http://stackoverflow.com/questions/11336950/joining-two-tables-in-hive- using-hiveqlhadoop). Da hat noch niemand auf diese Frage geantwortet. Es wird mir eine große Hilfe sein. Vielen Dank für Ihre Zeit. – ferhan
Ich bin froh, dass es geholfen hat. Posted die Antwort. Werde mir die andere Frage bald ansehen! –