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

总结

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

相关推荐
Francek Chen13 小时前
【大数据处理与分析】数据仓库Hive:02 数据湖
大数据·数据仓库·hive·hadoop·分布式·数据分析
自由能燃气设备2 天前
燃气容积式热水器厂家选购指南:2026年商用热水设备采购避坑手册
大数据·数据库·数据仓库·人工智能
哥本哈士奇2 天前
dbt+SQLServer构建数据仓库(8):Vibe Coding用dbt构建data vault数仓
数据仓库·sqlserver
Waay3 天前
什么是HBase?它和Hive有什么区别?
大数据·数据库·hive·hadoop·hdfs·hbase
ha_lydms3 天前
使用DataWorks导入 Maxcompute 数据
大数据·数据仓库·dataworks·maxcompute·hologres·odps·数据同步
ZCBUS实时计算4 天前
金融证券实时数仓建设实践:轻量化实时计算平台落地,实现交易数据端到端秒级处理
大数据·数据库·数据仓库·金融·flink·dba·etl
爱看报的猿4 天前
【金仓数据库征文】MySQL至金仓KES异构数据库平滑迁移与性能深度调优实战
数据库·数据仓库·mysql·金仓数据库征文
fastjson_5 天前
Hive的介绍和使用
数据仓库·hive·hadoop
德昂信息dataondemand6 天前
数仓ETL避坑指南:如何攻克时序指标中的数据问题
数据仓库·商务智能
哥本哈士奇6 天前
dbt+SQLServer构建数据仓库(3):dbt_project.yml配置精讲
数据仓库·sqlserver