千家信息网

Hive UDF的示例分析

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章给大家分享的是有关Hive UDF的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Hive UDF整理字符串函数字符串长度函数:length语法: leng
千家信息网最后更新 2026年11月03日Hive UDF的示例分析

这篇文章给大家分享的是有关Hive UDF的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

Hive UDF整理

字符串函数

字符串长度函数: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/path2/p.php?k1=v1&k2=v2#Ref1′, 'HOST') from dual;

facebook.com

hive> select parse_url('http://facebook.com/path2/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(只能是逗号分隔,不然返回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的示例分析"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

字符 字符串 函数 语法 空格 正则 表达式 长度 输入 位置 内容 结果 示例 分析 分隔符 右边 大写 小写 情况 更多 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技股 广东猪兼强互联网科技有限公司 科技互联网企业 中国互联网科技工作委员会毛军 科技金融是不是互联网金融 互联网金融 科技金融 互联网科技股票 嘟嘟瓜互联网科技 太原新华互联网科技学校怎么样 富国互联网科技创新基金 博兴的互联网电子科技公司 济南华为互联网科技产业总部基地 花神(南京)互联网科技有限公司 青岛科技大学互联网大赛研究生 互联网金融科技名词解释 烟台灵鸽互联网科技有限公司 互联网与数字科技关系 扫呗互联网科技有限公司 好易买互联网科技 网互联网络科技 小米移动互联网科技园 华服互联网科技靠谱吗 科技互联网项目 互联网 科技公司 深圳互联网络科技有限公司 互联网金融 科技创新 互联网科技有限公司 翻译 茂名市互联网科技产业园 电子科技大学互联网创业大赛 互联网科技快速发展优美句子
0