Explodieren Sie das Array von Struct in Hive
Dies ist die unten stehende Hive-Tabelle
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 Tabelle.
1015826235 [{"product_id":220003038067,"timestamps":"1340321132000"},{"product_id":300003861266,"timestamps":"1340271857000"}]
Gibt es eine Möglichkeit, die folgende Ausgabe von HiveQL zu erhalten, nachdem das Array aufgelöst wurde?
**USER_ID** | **PRODUCT_ID** | **TIMESTAMPS**
------------+------------------+----------------
1015826235 220003038067 1340321132000
1015826235 300003861266 1340271857000
Aktualisierte
Ich habe diese Abfrage geschrieben, um die Ausgabe im obigen Format zu erhalten, aber sie gibt mir nicht das gewünschte Ergebnis.
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? Vorschläge werden geschätzt.