Hive零基础从入门到实战 进阶篇(十三) HiveQL:集合函数

目录

 

前言

1. 集合函数表

2. 可以处理array格式的函数

3. 最终返回array格式的函数

4. 集合函数功能演示

4.1 size(Array)

4.2 array_contains(Array, value)

4.3 sort_array(Array)


 

前言

Hive中的集合函数是一些专门为array、map等数据格式的数据设计的函数。本文除了介绍集合函数外,还会盘点一下Hive中其他能够处理或者最终返回array格式的函数。

 

1. 集合函数表

返回数值类型 函数名\所需参数\参数数据类型 描述

int

size(Map)

返回map的长度

int

size(Array)

返回数组的长度(数组中的元素个数)

array

map_keys(Map)

返回map中的所有key

array

map_values(Map)

返回map中的所有value

boolean

array_contains(Array, value)

如该数组Array包含value返回true,否则返回false

array

sort_array(Array)

按自然顺序对数组中的元素进行排序并返回

 

2. 可以处理array格式的函数

 

3. 最终返回array格式的函数

 

4. 集合函数功能演示

表2和表3中的函数在之前的博客中已有详细介绍,这里就不再赘述了。而map格式在工作中很少见到,所以下面主要演示一下关于array的集合函数的用法。 

4.1 size(Array)

功能:返回数组的长度(数组中的元素个数),数组中的元素可以是任意格式。

举例:

hive (app)> select size(array('1','2'));
OK

2

4.2 array_contains(Array, value)

功能:如该数组Array包含value返回true,否则返回false,数组中的元素可以是任意格式。

举例:

hive (app)> select array_contains(array('1','2'),'2');
OK

true


hive (app)> select array_contains(array('1','2'),'3');
OK

false

4.3 sort_array(Array)

功能:按自然顺序对数组中的元素进行排序并返回,数组中的元素可以是任意格式。

举例:

当元素为字符串时,排序按照字符串的第一个字符进行自然排序
hive (app)> select sort_array(array('f','d','a'));
OK

["a","d","f"]

hive (app)> select sort_array(array('4','2','3'));
OK

["2","3","4"]

hive (app)> select sort_array(array('6','20','3'));
OK

["20","3","6"]

当元素为数字时,排序按照数字大小进行自然排序
hive (app)> select sort_array(array(6,20,3));
OK

[3,6,20]

 


能看到这里的同学,就右上角点个赞吧,3Q~

你可能感兴趣的:(Hive零基础从入门到实战 进阶篇(十三) HiveQL:集合函数)