hive 常用UDF

Hive UDF整理
(可以直接在mysql上测试,hive中没有伪表,需要手动创建,反应慢)
字符串函数
字符串长度函数: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

(mysql不支持,请用hive测试,请先建一个伪表dual)
正则表达式解析函数:regexp_extract


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

返回值: string

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

X?   X,一次或一次也没有
X*    X,零次或多次
X+    X,一次或多次
X{n}    X,恰好 n 次
X{n,}    X,至少 n 次
X{n,m}    X,至少 n 次,但是不超过 m 次

举例:

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
hive>select regexp_extract(‘userid=13333333‘, ‘.*=(.*)‘, 1) from dual;
(说明=不是特殊字符)

13333333

hive>select regexp_extract(‘userid.13333333‘, ‘.*\\.(.*)‘, 1) from dual;
(\\如果是特殊字符请用,例如:. * (  )  )
13333333

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”:”[email protected]_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(只能是逗号分隔,不然返回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

转自:http://bbs.superwu.cn/forum.php?mod=viewthread&tid=38&extra=

hive 常用UDF

时间: 2024-10-24 21:04:29

hive 常用UDF的相关文章

hive的UDF 函数(User-Defined-Function)

UDF函数可以直接应用于select语句,对查询结构做格式化处理后,再输出内容. 关系运算 等值比较: = 语法: A = B 操作类型: 所有基本类型 描述: 如果表达式A与表达式B相等,则为TRUE:否则为FALSE 举例: hive> select 1 from dual where 1=1; 1 不等值比较: <> 语法: A <> B 操作类型: 所有基本类型 描述: 如果表达式A为NULL,或者表达式B为NULL,返回NULL:如果表达式A与表达式B不相等,则为T

hive 的udf 函数使用

1)依据课程讲解UDF编程案例,完成练习,总结开发UDF步骤,代码贴图,给予注释,重点 2)更改emp 表中名字的大写给为小写. 一:hive 的udf 函数: 1.1 hive UDF 函数概述: 1. hive自带了一些函数比如:max/min 等,但是由于自带的函数数量有限,自己可以定义udf来方便扩展. 2. udf 函数可以直接应用于select 语句,对查询结构做格式化处理之后,然后再输出内容. 1.2 hive 编写udf函数的时候需要注意的地方: 1. 自定义udf函数需要继承o

Hive常用语句

1Hive简介 Hive对我来说就是一个基于HDFS的数据仓库,它提供了一个种类SQL语言(和SQL标准基本一样又有一些特殊的地方不一样),能让不精通Java语言而熟悉SQL语言的工程师,快速的对HDFS或其他存储文件系统如Amazon,S3,上的数据进行数据分析,是Hadoop生态系统中非常重要的一个工具.对于大数据分析师而言,HiveQL则是必须要掌握的一个工具. 2.Hive常用语句 2.1菜鸟建表法 1.直接建表,指定分隔符,默认存储为text,也可以指定存储格式! create tab

Hive 10、Hive的UDF、UDAF、UDTF

Hive自定义函数包括三种UDF.UDAF.UDTF UDF(User-Defined-Function) 一进一出 UDAF(User- Defined Aggregation Funcation) 聚集函数,多进一出.Count/max/min UDTF(User-Defined Table-Generating Functions)  一进多出,如lateral view explore() 使用方式 :在HIVE会话中add 自定义函数的jar文件,然后创建function继而使用函数

hive常用命令

hive常用命令 show tables; 列出hive里面所有数据表名 desc userProfile; 显示数据表userProfile的基本表字段及字段type desc extended trackinfo; 显示数据表trackinfo的详细信息,包括字段说明,数据表等 /usr/local/cloud/hive/bin/hive 进入hive数据库 select attribute_name from pms_attribute where attribute_id=21000 a

hive下UDF函数的使用

1.编写函数 [java] view plaincopyprint?package com.example.hive.udf;    import org.apache.hadoop.hive.ql.exec.UDF;  import org.apache.hadoop.io.Text;    public final class LowerCase extends UDF {    public Text evaluate(final Text s) {      if (s == null)

HIVE的UDF

HIVE的UDF    新建java工程,导入hive相关包,导入hive相关的lib.    创建类继承UDF    自己编写一个evaluate方法,返回值和参数任意.    为了能让mapreduce处理,String要用Text处理.    将写好的类打成jar包,上传到linux中    在hive命令行下,向hive注册UDF:add jar /xxxx/xxxx.jar    为当前udf起一个名字:create temporary function fname as '类的全路径

Hive学习心得&amp;Hive的UDF

一:Hive基本介绍 Hive是建立在Hadoop上的数据仓库基础构架,它提供了一系列工具可以用来进行数据提取.转化.加载,这是一种可以存储.查询和分析存储在Hadoop中的大规模的数据机制. 使用语言:QL语言(类SQL查询语言).能处理内建的mapper和reducer无法完成的复杂分析工作. 1.Hive是SQL解析引擎,它将SQL语句转译成M/R Job然后再Hadoop执行. 2.Hive的表其实是HDFS的目录(/文件夹),按表名把文件夹区分开.如果是分区表,则分区值是子文件夹,可以

hive常用函数

来源:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF Complex Type Constructors The following functions construct instances of complex types. Constructor Function Operands Description map (key1, value1, key2, value2, ...) Creates a m