首页 > 其他分享 >Hive中的高级函数

Hive中的高级函数

时间:2023-03-13 19:44:06浏览次数:46  
标签:窗口 函数 自定义 高级 Hive 当前 数据 范围

高级函数

1.炸裂函数 UDTF

      通常是将数组或者集合中或者结构体(涉及到数据类型-------复杂数据类型)中的元素单个输出

特点:接收一行数据,输出一行或多行数据

2.窗口函数/开窗函数

 

概念:能为每行数据划分一个窗口,然后对窗口范围内的数据进行计算,最后将计算结果返回给该行数据

 

包括两部分:窗口范围和函数

窗口范围:用于定义计算范围(通俗讲就是几行到当前行或者哪一个值到当前值)

函数:计算逻辑(函数包括求和、平均值、统计个数等)

窗口范围:

分类:

  基于行 (要求每行数据的窗口为上一行到当前行)

 

 

 

  基于值 (当前值-1到当前值)

分区:

可以指定分区字段

 

常用窗口函数

1)聚合函数

  max:最大值

  min:最小值

  sum:求和

  avg:平均值

  count:计数

2)跨行取值函数

  lead和lag:获取当前行的上/下某行、某个字段的值

不支持自定义窗口

  first_value()和last_value():获取窗口内某一列的第一个值/最后一个值

3)排名函数:不支持自定义窗口

  rank

  dense_rank

  row_number

 

标签:窗口,函数,自定义,高级,Hive,当前,数据,范围
From: https://www.cnblogs.com/yanhuihui/p/17212582.html

相关文章

  • js实用函数
    1.批量设置元素属性,代码将所有视频音频图片设置属性,添加控制按钮,设定宽度不超过屏幕setAttr点击查看代码letmedias=[];lettagAttr={'video':{'width':......
  • oracle nvl,nvl2, nullif,以及类型强转函数cast
     参考博客 https://www.cnblogs.com/xielong/p/9285147.html SELECT0ASt1,1ASt2,1.123456ASt3,NULLASt4,round((1234.123456-null)*100/nvl(0.1,......
  • 父类子类中的同名函数
    同名函数若子类中有与父类同名的函数,则在子类中会屏蔽掉从父类继承而来的同名函数若想在子类中调用被屏蔽掉的父类同名函数,则需要加上作用域:son.myParent::print();直......
  • javaweb审计/函数
    statement.executeQuery(sql);lombok模块可以自动生成setter/getter/tostring等方法SQL注入可以首先找到所有包含sql语句的点,随后观察传参类型是否是sring类型,只有当......
  • JavaScript回调函数
    JavaScriptAPI里这样解释:Acallbackisafunctionthatispassedasanargumenttoanotherfunctionandisexecutedafteritsparentfunctionhascompleted.(回调......
  • python函数
    函数:是组织好的,可重复使用的,用来实现特定功能的代码段。函数的定义:def函数名(传入参数):函数体return返回值 函数的调用:函数名(参数)注意事项:参数不......
  • mysql elt interval函数区间统计
    引言 在实际的业务统计需求中有时往往需要对区间进行分组统计查询,如分数区间,工资区间查询统计等!mysql中可以利用elt函数来实现此类需求!接下来看如下时间业务需求:......
  • 分享10个高级sql写法
    本文主要介绍博主在以往开发过程中,对于不同业务所对应的sql写法进行归纳总结而来。进而分享给大家。本文所讲述sql语法都是基于MySql8.0博主github地址:http://git......
  • 函数柯里化和new操作符的实现
    函数柯里化柯里化在计算机科学中,柯里化(Currying)是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数且返回结果的新函数......
  • 字符串函数练习
    字符串函数练习一:下列程序会打印什么#include<stdio.h>intmain(void){charnote[]="Seeyouatthesnackbar.";char*ptr;ptr=note;put......