Hive函数

来源:互联网 发布:创业怎么找投资人 知乎 编辑:程序博客网 时间:2024/05/22 23:27

Hive函数分为简单函数、窗口函数、分析混合函数、自定义函数(UDF/UDAF)等

本文主要介绍简单函数和分析混合函数

查看Hive中函数基本命令
show functions   ----列出所有函数desc function count   ----查看count函数的用法desc function extended count  ---查看详细用法,并且会举出一个简单例子

简单函数

1.if函数

hive> select if(1=2,"true","false");            ----如果第一个参数成立,返回第二个参数,否则返回第三个参数false


2.coalesce函数
hive> select coalesce(null,1,'hello',null);           -----返回参数列表中第一个不为空的值,参数列表可以有多个1



3.case when
语法:case when a then b [when c then d]* [else e] end
判断a表达式若成立,执行b,若不成立判断c,c成立返回d,否则返回e。c部分可以有多个也可以一个都没有

hive> select case when 1=2 then 'true' when 1>0 then 'yes' else 'no' end  ;yes  hive> select case when 1=2 then 'true' else 'false' endfalsehive> select case when 1=2 then 'true' endNULL         ---因为1不等于2,语句中没显示指定返回的值,所以系统返回NULL
4.concat_ws
hive> select concat_ws('.','www','baidu','com');www.baidu.com              ---拼接函数,将参数列表后几个参数用第一个参数拼接起来

5.parse_url
hive> select parse_url('http://facebook.com/path/p1.php?query=1', 'HOST') ;facebook.comhive> select parse_url('http://facebook.com/path/p1.php?query=1', 'QUERY') ;query=1hive> select parse_url('http://facebook.com/path/p1.php?query=1', 'QUERY','query') ;1类似的参数还有PATH、PROTOCOL、FILE等,可通过desc function extended parse_url

6.get_json_object
hive> select get_json_object('{"name":"jack"}','$.name');jack-----第一个参数是传入的json字符串,第二个是需要指定获取的json的key


7.collect_set和collect_list用法可见另外一片博文Hive的Collect函数

混合函数

Hive中也可以直接调用Java中的方法,一般可借助java_method函数或reflect函数
hive> select java_method("java.lang.Math","sqrt",cast(4 as double));2.0hive> select java_method("java.util.UUID","randomUUID");45bd610f-5020-4b46-80a2-22044e908dcehive> select reflect("java.lang.Object","toString");java.lang.Object@78a981a1










0 0
原创粉丝点击