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

总结

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

相关推荐
注塑机数据采集联网6 小时前
数据采集网关入门:ZK-D1/D3从零开始构建你的数据运用
大数据·数据仓库·人工智能·物联网·数据库架构·注塑机网关
roman_日积跬步-终至千里12 小时前
【数据建模入门】从一家小店看懂数仓与机器学习:先理业务,再串技术
数据仓库·人工智能·机器学习·数据分析·数据建模
步行cgn12 小时前
为什么既要 web.xml 又要 springmvc.xml?能不能只配一个?
xml·前端·hive
程序员梅雨1 天前
【从零开始学习数据仓库 | 第二篇】: 拉链表 & 数仓分层
大数据·数据仓库·学习
roman_日积跬步-终至千里1 天前
数仓开发的三层责任:业务定义、模型设计与 SQL 实现
数据库·数据仓库·sql·数据建模
@小匠1 天前
Flink + Iceberg 批量失败复盘:一次超时如何变成 Hive Metastore 锁泄漏
大数据·hive·flink
geovindu2 天前
SQL Data Sampling and Approximation Techniques using postgreSQL 18
大数据·数据库·数据仓库·sql·postgresql·数据库开发·数据库架构
skywalk81633 天前
hive —— 多机 AI Agent 协同的任务总线:分布式,多节点同时运行,保障不会宕机
人工智能·hive·分布式
程序员梅雨3 天前
【从零开始学习数据仓库 | 第一篇】:维度建模理论
大数据·数据仓库·学习·阿里云·数据分析
棣廷3 天前
初识数据仓库——数仓分层到DataX数据采集
数据仓库