提取結構數組我在蜂房在蜂巢
CREATE EXTERNAL TABLE FOO (
TS string,
customerId string,
products array< struct <productCategory:string, productId:string> >
)
PARTITIONED BY (ds string)
ROW FORMAT SERDE 'some.serde'
WITH SERDEPROPERTIES ('error.ignore'='true')
LOCATION 'some_locations'
;
表的記錄外部表可以容納的數據包括:
1340321132000, 'some_company', [{"productCategory":"footwear","productId":"nik3756"},{"productCategory":"eyewear","productId":"oak2449"}]
不要任何人知道,如果有一種方法簡單地從該記錄中提取所有productCategory,並將其作爲productCategories數組返回,而不使用爆炸。像下面這樣:
["footwear", "eyewear"]
或者我需要寫我自己GenericUDF,如果是這樣,我不知道太多的Java(Ruby的人),能有人給我一些提示?我從Apache Hive閱讀了關於UDF的一些說明。但是,我不知道哪個集合類型最適合處理數組,以及要處理結構的集合類型是什麼?
===
我有所寫一個GenericUDF回答了這個問題,但我遇到了其他2個問題。它是在這個SO Question
謝謝,但數組的大小是不固定的。雖然使用JRuby的好主意,爲此,需要使用Java來編寫GenericUDF。更糟的是,在編寫GenericUDF時沒有太多參考。 – pchu 2013-03-26 12:23:14