谈笑间学会大数据-Hive函数
用户自定义函数(UDF)是一个允许用户扩展HiveQL的强大的功能。正如我们将看到的,用户使用Java进行编码。一旦将用户自定义函数加入到用户会话中(交互式的或者通过脚本执行的),它们就将和内置的函数一样使用,甚至可以提供联机帮助。Hive具有多种类型的用户自定义函数,每一种都会针对输入数据执行特定“一类”的转换过程。
在ETL处理中,一个处理过程可能包含多个处理步骤。Hive语言具有多种方式来将上一步骤的输入通过管道传递给下一个步骤,然后在一个查询中产生众多输出。用户同样可以针对一些特定的处理过程编写自定义函数。如果没有这个功能,那么一个处理过程可能就需要包含一个MapReduce步骤或者需要将数据转移到另一个系统中来实现这些改变。互联系统增加了复杂性,并且增加了配置错误或其他错误的发生几率。当数据量是GB甚至TB级别时,在不同系统中转移数据,需要消耗大量的时间。与此相反,UDF是在Hive查询产生的相同的task进程中执行的,因此它们可以高效地执行,而且其消除了和其他系统集成时所产生的复杂度。
查询函数和函数描述
###查询所以函数列表
hive> show functions;
abs
acos
and
array
...
函数描述信息
hive> describe function concat;
concat(str1, str2, ... strN) - returns the concatenation of str1, str2, ... strN
内置函数列表
hive 全部内置函数:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF
数学函数
字符函数
收集函数
转换函数
日期函数
条件函数
内置函数太多了,在此就不一一列举了,找到了几个网址挺全面的,需要的时候点一下吧~
https://blog.csdn.net/liu123641191/article/details/80845411
https://www.iteblog.com/archives/2258.html#1If_if
https://blog.csdn.net/weixin_40683253/article/details/101557328
https://blog.csdn.net/xuhualei88/article/details/70214502
https://www.cnblogs.com/MOBIN/p/5618747.html#8
那么内置函数无法满足怎么办呢?
自定义开发函数撒。怎么搞呢?
自定义udf、udtf、udaf 可参考之前de博客:https://blog.csdn.net/MrZhangBaby/article/details/90638455