将csv数据插入到复杂的配置单元表中

58wvjzkj  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(319)

配置单元版本为0.13,配置单元表说明如下:

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}]

不为项目名称和项目价格插入任何值。

92dk7w1h

92dk7w1h1#

分隔符的当前文档存在问题。我以后再更新。
它实际上不是字段、集合项和Map键,而是嵌套级别1、2和3,并且还有其他级别没有被Map 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}] |
+-------------+------------------------------------------------------+

相关问题