Đây là bên dưới Hive BảngExplode Array của Struct trong Hive
CREATE EXTERNAL TABLE IF NOT EXISTS SampleTable
(
USER_ID BIGINT,
NEW_ITEM ARRAY<STRUCT<PRODUCT_ID: BIGINT,TIMESTAMPS:STRING>>
)
Và đây là các dữ liệu trong Bảng- trên
1015826235 [{"product_id":220003038067,"timestamps":"1340321132000"},{"product_id":300003861266,"timestamps":"1340271857000"}]
Có cách nào tôi có thể nhận được đầu ra dưới đây từ HiveQL sau khi nổ mảng?
**USER_ID** | **PRODUCT_ID** | **TIMESTAMPS**
------------+------------------+----------------
1015826235 220003038067 1340321132000
1015826235 300003861266 1340271857000
Cập nhật
tôi đã viết truy vấn này để có được đầu ra trong các định dạng trên, nhưng nó không phải là cho tôi kết quả theo cách tôi muốn.
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;
Bất kỳ ai có thể giúp tôi làm gì sai? Bất kỳ đề xuất sẽ được đánh giá cao.
Làm thế nào về một cái gì đó như thế này? chọn user_id, prod_and_ts.product_id như product_id, prod_and_ts.timestamps như timestamps từ SampleTable bên XEM nổ (NEW_ITEM) exploded_table như prod_and_ts; –
@ Mark, Cảm ơn Mark, Nó đã hoạt động, Bạn có thể đăng bài này làm câu trả lời để tôi có thể chấp nhận nó không. Và bạn có thể xin vui lòng cũng có một cái nhìn vào câu hỏi này SO cũng. [http://stackoverflow.com/questions/11336950/joining-two-tables-in-hive-using-hiveqlhadoop](http://stackoverflow.com/questions/11336950/joining-two-tables-in-hive- sử dụng-hiveqlhadoop). Vì chưa ai trả lời câu hỏi này. Nó sẽ giúp ích rất nhiều cho tôi. Cảm ơn vì đã dành thời gian cho tôi. – ferhan
Vui vì nó đã giúp. Đã đăng câu trả lời. Sẽ sớm xem xét câu hỏi khác! –