如何在配置单元中获取复杂数据类型列的长度
Posted
技术标签:
【中文标题】如何在配置单元中获取复杂数据类型列的长度【英文标题】:How to get length of complex datatype column in hive 【发布时间】:2017-05-17 23:41:26 【问题描述】:我有一个 hive 表包含 array
和 map
类型的列,我想过滤数组/映射列包含超过 N 个元素的记录,该怎么做?
DDL:
create table test (id string, v1 array<int>, v2 map<string,string>)
查询:
select * from test where length(v1)>10 or length(v2)>10
【问题讨论】:
【参考方案1】:select * from test where size(v1)>10 or size(v2)>10
演示
create table test (id string, v1 array<int>, v2 map<string,string>);
insert into test select 1,array(1,2,3,4,5),map('K1','V1','K2','V2','K3','V3');
select size(v1),size(v2)
from test
;
+----+----+
| c0 | c1 |
+----+----+
| 5 | 3 |
+----+----+
【讨论】:
以上是关于如何在配置单元中获取复杂数据类型列的长度的主要内容,如果未能解决你的问题,请参考以下文章
如何将 json 字符串数据类型列转换为配置单元中的映射数据类型列?