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

总结

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

相关推荐
IvanCodes12 小时前
六、Hive 分桶
大数据·hive
IvanCodes12 小时前
七、深入 Hive DDL:管理表、分区与洞察元数据
数据仓库·hive·hadoop
若兰幽竹13 小时前
【HBase整合Hive】HBase-1.4.8整合Hive-2.3.3过程
数据库·hive·hbase
RestCloud15 小时前
ETL 数据集成平台与数据仓库的关系及 ETL 工具推荐
数据仓库·etl·cdc·数据集成平台
多多*2 天前
Java反射 八股版
java·开发语言·hive·python·sql·log4j·mybatis
yyf9601262 天前
hiveserver2与beeline进行远程连接hive配置及遇到的问题
数据仓库·hive
yyf9601262 天前
hive在配置文件中添加了hive.metastore.uris之后进入hive输入命令报错
hive
jiedaodezhuti2 天前
hive两个表不同数据类型字段关联引发的数据倾斜
数据仓库·hive·hadoop
IvanCodes2 天前
五、Hive表类型、分区及数据加载
大数据·数据仓库·hive
镜舟科技2 天前
什么是数据集市(Data Mart)?
数据仓库·olap·数据集市·多维数据模型·在线分析处理·定制化数据