HIVE UDF整理

转载 2012年03月31日 11:03:51

原文地址:http://www.oratea.net/?p=951



字符串函数

字符串长度函数:length

语法: length(string A)

返回值: int

说明:返回字符串A的长度

举例:

hive> select length(‘abcedfg’) from dual;

7

字符串反转函数:reverse

语法: reverse(string A)

返回值: string

说明:返回字符串A的反转结果

举例:

hive> select reverse(‘abcedfg’) from dual;

gfdecba

字符串连接函数:concat

语法: concat(string A, string B…)

返回值: string

说明:返回输入字符串连接后的结果,支持任意个输入字符串

举例:

hive> select concat(‘abc’,'def’,'gh’) from dual;

abcdefgh

带分隔符字符串连接函数:concat_ws

语法: concat_ws(string SEP, string A, string B…)

返回值: string

说明:返回输入字符串连接后的结果,SEP表示各个字符串间的分隔符

举例:

hive> select concat_ws(‘,’,'abc’,'def’,'gh’) from dual;

abc,def,gh

字符串截取函数:substr,substring

语法: substr(string A, int start),substring(string A, int start)

返回值: string

说明:返回字符串A从start位置到结尾的字符串

举例:

hive> select substr(‘abcde’,3) from dual;

cde

hive> select substring(‘abcde’,3) from dual;

cde

hive>  select substr(‘abcde’,-1) from dual;  (和ORACLE相同)

e

字符串截取函数:substr,substring

语法: substr(string A, int start, int len),substring(string A, int start, int len)

返回值: string

说明:返回字符串A从start位置开始,长度为len的字符串

举例:

hive> select substr(‘abcde’,3,2) from dual;

cd

hive> select substring(‘abcde’,3,2) from dual;

cd

hive>select substring(‘abcde’,-2,2) from dual;

de

字符串转大写函数:upper,ucase

语法: upper(string A) ucase(string A)

返回值: string

说明:返回字符串A的大写格式

举例:

hive> select upper(‘abSEd’) from dual;

ABSED

hive> select ucase(‘abSEd’) from dual;

ABSED

字符串转小写函数:lower,lcase

语法: lower(string A) lcase(string A)

返回值: string

说明:返回字符串A的小写格式

举例:

hive> select lower(‘abSEd’) from dual;

absed

hive> select lcase(‘abSEd’) from dual;

absed

去空格函数:trim

语法: trim(string A)

返回值: string

说明:去除字符串两边的空格

举例:

hive> select trim(‘ abc ‘) from dual;

abc

左边去空格函数:ltrim

语法: ltrim(string A)

返回值: string

说明:去除字符串左边的空格

举例:

hive> select ltrim(‘ abc ‘) from dual;

abc

右边去空格函数:rtrim

语法: rtrim(string A)

返回值: string

说明:去除字符串右边的空格

举例:

hive> select rtrim(‘ abc ‘) from dual;

abc

正则表达式替换函数:regexp_replace

语法: regexp_replace(string A, string B, string C)

返回值: string

说明:将字符串A中的符合java正则表达式B的部分替换为C。注意,在有些情况下要使用转义字符

举例:

hive> select regexp_replace(‘foobar’, ‘oo|ar’, ”) from dual;

fb

正则表达式解析函数:regexp_extract

语法: regexp_extract(string subject, string pattern, int index)

返回值: string

说明:将字符串subject按照pattern正则表达式的规则拆分,返回index指定的字符。注意,在有些情况下要使用转义字符

举例:

hive> select regexp_extract(‘foothebar’, ‘foo(.*?)(bar)’, 1) from dual;

the

hive> select regexp_extract(‘foothebar’, ‘foo(.*?)(bar)’, 2) from dual;

bar

hive> select regexp_extract(‘foothebar’, ‘foo(.*?)(bar)’, 0) from dual;

foothebar

URL解析函数:parse_url

语法: parse_url(string urlString, string partToExtract [, string keyToExtract])

返回值: string

说明:返回URL中指定的部分。partToExtract的有效值为:HOST, PATH, QUERY, REF, PROTOCOL, AUTHORITY, FILE, and USERINFO.

举例:

hive> select parse_url(‘http://facebook.com/path1/p.php?k1=v1&k2=v2#Ref1′, ‘HOST’) from dual;

facebook.com

hive> select parse_url(‘http://facebook.com/path1/p.php?k1=v1&k2=v2#Ref1′, ‘QUERY’, ‘k1′) from dual;

v1

json解析函数:get_json_object

语法: get_json_object(string json_string, string path)

返回值: string

说明:解析json的字符串json_string,返回path指定的内容。如果输入的json字符串无效,那么返回NULL。

举例:

hive> select  get_json_object(‘{“store”:

>   {“fruit”:\[{"weight":8,"type":"apple"},{"weight":9,"type":"pear"}],

>    “bicycle”:{“price”:19.95,”color”:”red”}

>   },

>  “email”:”amy@only_for_json_udf_test.net”,

>  “owner”:”amy”

> }

> ‘,’$.owner’) from dual;

amy

空格字符串函数:space

语法: space(int n)

返回值: string

说明:返回长度为n的字符串

举例:

hive> select space(10) from dual;

hive> select length(space(10)) from dual;

10

重复字符串函数:repeat

语法: repeat(string str, int n)

返回值: string

说明:返回重复n次后的str字符串

举例:

hive> select repeat(‘abc’,5) from dual;

abcabcabcabcabc

首字符ascii函数:ascii

语法: ascii(string str)

返回值: int

说明:返回字符串str第一个字符的ascii码

举例:

hive> select ascii(‘abcde’) from dual;

97

左补足函数:lpad

语法: lpad(string str, int len, string pad)

返回值: string

说明:将str进行用pad进行左补足到len位

举例:

hive> select lpad(‘abc’,10,’td’) from dual;

tdtdtdtabc

与GP,ORACLE不同,pad 不能默认

右补足函数:rpad

语法: rpad(string str, int len, string pad)

返回值: string

说明:将str进行用pad进行右补足到len位

举例:

hive> select rpad(‘abc’,10,’td’) from dual;

abctdtdtdt

分割字符串函数: split

语法:  split(string str, string pat)

返回值:  array

说明: 按照pat字符串分割str,会返回分割后的字符串数组

举例:

hive> select split(‘abtcdtef’,'t’) from dual;

["ab","cd","ef"]

集合查找函数: find_in_set

语法: find_in_set(string str, string strList)

返回值: int

说明: 返回str在strlist第一次出现的位置,strlist是用逗号分割的字符串。如果没有找该str字符,则返回0

举例:

hive> select find_in_set(‘ab’,'ef,ab,de’) from dual;

2

hive> select find_in_set(‘at’,'ef,ab,de’) from dual;

0


hive中UDF、UDAF和UDTF使用

hive中UDF、UDAF和UDTF使用   2012-06-19 15:49:22|  分类: 云计算 |  标签:hive  |举报|字号 订阅 Hive进...

[Hive]Hive自定义函数UDF

当Hive提供的内置函数无法满足你的业务处理需要时,此时就可以考虑使用用户自定义函数用户自定义函数(user defined function),针对单条记录。 编写一个UDF,需要继承UDF类,并实...

hive udf开发超详细手把手教程

关于hive的udf介绍,就不多啰嗦了。网上的教程一抓一大把,也可以上apache的官网去查阅相关资料,我就省了翻译的时间了。重点给大家带来干货,手把手教会你怎样开发一个udf函数,已经如何部署到服务...

hive中UDF开发:解析json对象和解析json数组对象

查阅hive的UDF函数指南可知,虽然udf中的get_json_object和json_tuple能对json解析,但有时候没法实现复杂业务扩展,同时也没有UDF对JSON数组的解析,因此,很多时候...

Hive函数大全

目录 一、关系运算:... 4 1. 等值比较: =. 4 2. 不等值比较: . 4 3. 小于比较: . 4 4. 小于等于比较: . 4 5. 大于比较: >. 5 6. 大于等于比较: >=....
  • wisgood
  • wisgood
  • 2013年12月17日 14:18
  • 100628

sql常用函数分析

一旦成功地从表中检索出数据,就需要进一步操纵这些数据,以获得有用或有意义的结果。这些要求包括:执行计算与数学运算、转换数据、解析数值、组合值和聚合一个范围内的值等。 下表给出了T-SQL函数的类别和...

hive UDF

UDF(user defined function).hive的UDF包含三种:UDF支持一个输入产生一个输出

Hive UDF教程(三)

1.UDAF 前两节分别介绍了基础UDF和UDTF,这一节我们将介绍最复杂的用户自定义聚合函数(UDAF)。用户自定义聚合函数(UDAF)接受从零行到多行的零个到多个列,然后返回单一值,如sum()、...

hive常用UDF and UDTF函数介绍-lateral view explode()

前言: Hive是基于Hadoop中的MapReduce,提供HQL查询的数据仓库。这里只大概说下Hive常用到的UDF函数,全面详细介绍推荐官网wiki:https://cwiki.apache.o...

Hive2.0函数大全(中文版)

Hive2.0函数大全(中文版) 摘要 Hive内部提供了很多函数给开发者使用,包括数学函数,类型转换函数,条件函数,字符函数,聚合函数,表生成函数等等,这些函数都统称为内...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:HIVE UDF整理
举报原因:
原因补充:

(最多只允许输入30个字)