Voici le tableau ci-dessous RucheExploser le tableau de struct dans Ruche
CREATE EXTERNAL TABLE IF NOT EXISTS SampleTable
(
USER_ID BIGINT,
NEW_ITEM ARRAY<STRUCT<PRODUCT_ID: BIGINT,TIMESTAMPS:STRING>>
)
Et ce sont les données dans la table- ci-dessus
1015826235 [{"product_id":220003038067,"timestamps":"1340321132000"},{"product_id":300003861266,"timestamps":"1340271857000"}]
Est-il possible que je peux obtenir la sortie ci-dessous de la HiveQL après avoir explosé le tableau?
**USER_ID** | **PRODUCT_ID** | **TIMESTAMPS**
------------+------------------+----------------
1015826235 220003038067 1340321132000
1015826235 300003861266 1340271857000
Mise à jour
J'ai écrit cette requête pour obtenir la sortie dans le format ci-dessus, mais il ne me donne pas le résultat de la manière que je voulais.
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;
Quelqu'un peut-il m'aider quel tort je fais? Toute suggestion sera appréciée.
Que diriez-vous de quelque chose comme ceci? sélectionner user_id, prod_and_ts.product_id comme product_id, prod_and_ts.timestamps comme horodatages de sampletable LATERAL VIEW exploser (NEW_ITEM) exploded_table comme prod_and_ts; –
@ Mark, Merci Mark, Cela a fonctionné, Pouvez-vous afficher ceci comme une réponse afin que je puisse l'accepter. Et pouvez-vous s'il vous plaît également jeter un coup d'œil dans cette question SO aussi. [http://stackoverflow.com/questions/11336950/joining-two-tables-in-hive-using-hiveqlhadoop](http://stackoverflow.com/questions/11336950/joining-two-tables-in-hive- using-hiveqlhadoop). Comme personne n'a encore répondu à cette question. Ce sera d'une grande aide pour moi. Merci pour votre temps. – ferhan
Heureux que cela a aidé. Posté la réponse. Jetez un oeil à l'autre question bientôt! –