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 小时前
【从零开始学习数据仓库 | 第一篇】:维度建模理论
大数据·数据仓库·学习·阿里云·数据分析
棣廷9 小时前
初识数据仓库——数仓分层到DataX数据采集
数据仓库
棣廷11 小时前
初识Hive(2)
数据仓库·hive·hadoop
skywalk816311 小时前
deepseek对skywalk163/hive 和hivecommons/hive 两个多机AI Agent任务调度项目的对比
人工智能·hive·agent
father_12271 天前
【ambari管理下hdp2.6.5升级hive1.2.1-2.1.0-2.3.3】
hive·hadoop·ambari
geovindu1 天前
Pivoting and Unpivoting Data in SQL using postgreSQL 18
大数据·数据库·数据仓库·sql·postgresql·数据库开发·数据库架构
数据库小学妹1 天前
OLAP数据库怎么选?看清OLTP、数仓、湖仓边界
数据仓库·mpp·列式存储·联机分析处理·数据库选型·olap数据库
小刘在重生~2 天前
Servlet_day2 (上)|Servlet 整合 JDBC|请求转发 forward|Request 作用域
hive·hadoop·servlet
程序 代码狂人2 天前
切片表与分区表的区别(数据开发面试版)
java·大数据·开发语言·数据仓库·算法