2013-08-02 31 views
6

我想創建嵌套的收集項目的蜂巢表格。假設我有一個結構數組。如何定義蜂巢中嵌套的收集項目

CREATE TABLE SAMPLE(
    record array<struct<col1:string,col2:string>> 
    )row format delimited 
    fields terminated by ',' 
    collection items terminated by '|'; 

第一級,分隔符','將覆蓋默認分隔符'^ A'。

第二級,分隔符'|'將覆蓋默認的第二級分隔符'^ B'以分離出最外層結構(即陣列)。

第三級蜂巢將使用默認的第三個層次的分隔符「^ C」作爲分隔符的結構

現在我的問題是我怎麼可以定義爲第二級(即結構)分離,因爲「^ C'字符難以閱讀和生成。

是否有任何明確定義分隔符而不是^ C的方式?

在此先感謝。

回答

10

嘗試這樣:

CREATE TABLE SAMPLE(
id BIGINT, 
record array<struct<col1:string,col2:string>> 
)row format delimited 
fields terminated by ',' 
collection items terminated by '|' 
map keys terminated by ':'; 

現在你在文本文件中的數據將是這樣的:

1345653,110909316904:1341894546|221065796761:1341887508 

然後,您可以查詢它想:

select record.col1 from SAMPLE; 
+0

好的答案穆克什 – saching