2017-06-22 14 views
1

ハイブのバージョンは0.13で、次のように、ハイブテーブルの記述がある:複雑なハイブのテーブルにCSVデータを挿入する

CREATE TABLE temp 
(
customer_id int, 
sales_item array<struct<item_id:int,item_name:string,item_price:decimal(10,2)>>, 
) 
ROW FORMAT DELIMITED 
FIELDS TERMINATED BY ',' 
COLLECTION ITEMS TERMINATED BY '|'; 

私のcsvファイルは次のとおりです。

10,1|watch|300 

ハイブテーブルに挿入する方法...私は試しましたが、私の出力は次の通りです:

10 [{"item_id":1,"item_name":null,"item_price":null}] 

item_nameとitem_priceには値を挿入しません。

答えて

0

現在の区切り文字のドキュメントは問題があります。私は後でそれを更新します。
これは、実際コレクションアイテムマップキーなくネスティングレベル1,2、及び3 フィールドなく、create table構文によってマッピングされていない付加的なレベルがあります。

create external table temp 
(
    customer_id  int 
    ,sales_item  array<struct<item_id:int,item_name:string,item_price:decimal(10,2)>> 
) 
row format delimited 
fields terminated by ',' 
map keys terminated by '|' 
; 

select * from temp 
; 

+-------------+------------------------------------------------------+ 
| customer_id |      sales_item      | 
+-------------+------------------------------------------------------+ 
|   10 | [{"item_id":1,"item_name":"watch","item_price":300}] | 
+-------------+------------------------------------------------------+ 
+0

更新答え –

+0

を参照してください。このソリューションは、私のために働いていた...ありがとう... –

関連する問題