Explode the Array of Struct in Hive Explode the Array of Struct in Hive hadoop hadoop

Explode the Array of Struct in Hive


You need to explode only once (in conjunction with LATERAL VIEW). After exploding you can use a new column (called prod_and_ts in my example) which will be of struct type. Then, you can resolve the product_id and timestamps members of this new struct column to retrieve the desired result.

SELECT   user_id,   prod_and_ts.product_id as product_id,   prod_and_ts.timestamps as timestampsFROM    SampleTable    LATERAL VIEW explode(new_item) exploded_table as prod_and_ts;


If you are on Hive 0.10 or later, you could also use inline(ARRAY<STRUCT[,STRUCT]>). It explodes an array of structs into a table.


You can explode your array in the following manner:

select USER_ID,items from Sample_Table lateral view explode(NEW_ITEM) temp_table as items;