Hive版本为0.13,Hive表说明如下:
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 插入任何值。
最佳答案
分隔符的当前文档存在问题。稍后我会更新它。
它实际上不是字段、集合项和映射键,而是嵌套级别 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}] |
+-------------+------------------------------------------------------+
关于hadoop - 将 csv 数据插入复杂的配置单元表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44698470/