hive高阶函数介绍

213 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第12天,点击查看活动详情

对一组日期进行排序,可以使用到高阶函数 sort_array(),这个函数具有对array格式的内容进行排序的作用。

使用说明: sort_array(arraylist[value1,value2,value3,value4,value5])

具体功能描述: 该函数可以对arraylist格式的数据进行正向排序,即从小到大的排序方式,得到的结果也是一个arraylist格式的内容。

实际数据开发过程中,常将该函数应用于数据排序,或者是获取多字段中的最大值和最小值。

举例:取多个字段中最大最小值

现在有5个参数,分别不知道是什么,顺序也是打乱,需要获取到里面的最大值和最小值,可以用到下面的代码。

select
    arr[0] as min_val
    ,arr[4] as max_val
from
(
    select
        sort_array(array(a,b,c,d,e)) as arr
    from test2;
) a;

思路:首先获取到这几个参数的正向排序,即通过sort_array函数,然后通过行转列的方式,将一条数据拆解成两条,分别是最大值一列和最小值一列。

sort_array函数的应用大致就介绍到这里,下面不讲hive的内置函数,讲一讲自定义函数,自定义函数顾名思义就跟java中的自定义方法是一个道理,就是自己设定函数的内容以及作用,比如设计名称,实现逻辑,传入的参数以及传出的结果等等,这里也是用到了java语言来写这个自定义函数,具体的java语法和设计过程先不多说,大家有基础的都会写,讲一下怎么导入自定义函数到hive中吧。

之前也说过可以在hive中自定义函数,用到udf,但是只说了如何设计java函数,没有介绍怎么引入到hive中。 第一步:设计java自定义函数 第二步:将java文件打jar包,上传到Linux 第三步:将打好的jar包放入hive目录的classpath下:add jar …/xx…jar 第四步:需要自主验证是否添加成功:list jars; 第五步:很重要的一步,创建临时函数,关联自定义函数:create temporary function func_my as ‘类的权限定名称’ 第六步:需要验证自定义函数是否在hivesql中关联成功:show functions; 此时hive的内置函数库中会多一个函数 第七步:在sql中使用自定义函数