Hive的map/struct/array怎么通过insert插入数据

废话

  hive在高级使用语法时,会遇到map/struct/array等操作。但是我们只需想测试某几种数据,不想搞得麻烦通过定义数据文件,然后创建数据结构,再导入这一系列流程,就为验证一个感觉很简单的问题。于是想简化这个步骤,直接创建一个不用定义数据row format的表,然后insert 数据,查看是否有效就行。这里特意为这这个实现写下此文方便查看。

干货-map示例

bash 复制代码
--创建person1表
CREATE TABLE person1(id INT,info map<string,string>);
INSERT  into person1 select 3,map('name','zhangsan','age',16)
INSERT  into person1 select 1,map('lisi','21')  #错误示例

select * from person1
#显示
id  info
3	{"name":"zhangsan","age":"16"}
1	{"lisi":"21"}   #错误示例

干货-struct示例

bash 复制代码
--创建person2表
CREATE TABLE person2(id INT,info struct<name:string,age:int>);
INSERT  into person2 select 3,named_struct('name','wangwu','age',36); 
select id,info.name,info.age from person2
#显示
id  name    age
3	wangwu	36

干货-array示例

bash 复制代码
--创建person3表
CREATE TABLE person3(id INT,alias array<string>);
INSERT  into person3   select 4,ARRAY('zhangsan','zhangerwa','zhanggouzi')
select * FROM  person3
#显示
id  alias
4	{"zhangsan","zhangerwa","zhanggouzi"}
	zhangsan
	zhangerwa
	zhanggouzi

总结

  这三个都不一致,用起来还要注意区分

相关推荐
青春万岁!!12 小时前
hive分区表加字段后insert字段为空
数据仓库·hive·hadoop
Database_Cool_1 天前
AnalyticDB MySQL vs StarRocks/ByteHouse:云数仓选型指南——全托管 vs 自建方案
数据库·数据仓库·mysql·阿里云
涤生大数据1 天前
从 ETL 到 Agent:AI数据工程如何搭建企业级“数据工厂“
数据仓库·人工智能·etl
Database_Cool_2 天前
AnalyticDB MySQL vs Hologres:阿里云内部数仓产品如何选——场景化选型指南
数据库·数据仓库·mysql·阿里云
Nefu_lyh2 天前
【Hive】三、Hive 抽样:讲解 Hive 三大抽样方式:分桶抽样、块抽样、随机抽样的原理、语法、性能对比与实战案例
数据仓库·hive·hadoop
段一凡-华北理工大学2 天前
工业领域的Hadoop架构学习~系列文章16:实时流处理架构 - 工业数据的实时动脉
大数据·数据仓库·hadoop·分布式·学习·架构·高炉炼铁
Database_Cool_3 天前
AnalyticDB MySQL vs ClickHouse:OLAP 数据库选型深度对比——谁更适合企业级分析
数据库·数据仓库·mysql·数据分析
真上帝的左手3 天前
19. 大数据- BI 入门-数仓实战1-数据仓库的核心逻辑与落地范式
大数据·数据仓库·bi
Database_Cool_3 天前
AnalyticDB MySQL vs Apache Doris:企业级云数仓如何选型——全维度对比指南
数据库·数据仓库·mysql·阿里云
真上帝的左手3 天前
19. 大数据- BI 入门-数仓实战4-DIM 维度层
大数据·数据仓库·bi