Hive函数及性能优化

Hive函数分类

  • 从输入输出角度分类
    标准函数:一行数据中的一列或多列为输入,结果为单一值
    聚合函数:多行的零列到多列为输入,结果为单一值
    表生成函数:零个或多个输入,结果为多列或多行
  • 从实现方式分类
    1、内置函数
    2、自定义函数:
    • 2.1、UDF:自定义标准函数
    • 2.2、UDAF:自定义聚合函数
    • 2.3、UDTF:自定义表生成函数

内置函数

Hive提供大量内置函数供开发者使用

标准函数

字符函数

在这里插入图片描述
案例:

select locate("Plaza",customer_street) rst from customers where locate("Plaza",customer_street) <>0

在这里插入图片描述

select split(customer_street," ") rst from customers 

在这里插入图片描述

select customer_street,split(customer_street," ") rst,str_to_map(customer_street,":"," ") from customers

在这里插入图片描述

#将customers表中所有顾客姓名转换成大写
select upper(concat(customer_fname,"·",customer_lname)) from customers

在这里插入图片描述

类型转换函数

在这里插入图片描述
案例:

select customer_street,binary(customer_street,"latin")rst from customers

在这里插入图片描述

select customer_street,binary(customer_street,"latin"),cast(split(customer_street," ")[0] as bigint)r  from customers where cast(split(customer_street," ")[0] as bigint)<6000

在这里插入图片描述

数学函数

在这里插入图片描述
案例:

#将orders表中订单金额保留两位小数
select round(order_item_subtotal,2) from order_items

在这里插入图片描述

日期函数

在这里插入图片描述
案例:

select from_unixtime(1600740000,"yyyy-MM-dd HH:mm:ss.S")rst1, unix_timestamp()rst2, unix_timestamp("1970-01-01 08:00:00")rst3, 
to_date("2020-09-22 09:43:20")rst4, datediff("2020-09-22 09:43:20","2020-09-22 23:43:20")rst5, 
date_add("2020-09-22 09:43:20",-1)rst6, date_format("2020-09-22 09:43:20","yyyy/MM/dd HH:mm:ss")rst7

在这里插入图片描述

集合函数

在这里插入图片描述

条件函数

在这里插入图片描述
案例:

select if(1=2,1,2)rst1, nvl(null,"abc")rst2, isnull(null)rst3, isnotnull("null")rst4

在这里插入图片描述

select if(1=1,1,2)rst1, nvl("def","abc")rst2, isnull("a")rst3, isnotnull(null)rst4

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值