hive之udf函数的使用

hive之udf函数的使用,第1张

udf的全称是User Defined Function用户自定义函数,创建后可以直接在select语句中使用

使用中需要注意的是,创建一个udf需要继承orgapachehadoophiveqlexecUDF,并且要对evaluate进行overwrite

所以开发工程需要至少加上依赖包

然后创建一个类继承UDF,实现evaluate方法可以实现传入一个数据返回一个数据的效果

下面以信息脱敏为例

以上通过调用函数传入信息,然后数据处理后会返回一个脱敏信息。

接着需要用maven对这个进行package,生成jar包,将文件上传到服务器上。

以下流程注意登陆账户是否有权限

并建议将此jar包上传到分布式文件系统上,可以参考如下命令
hdfs dfs -put /home/hive-udf/desensitizationjar /lib/hive_udf/
然后可以通过hdfs dfs -ls /lib/hive_udf/查看已上传成功的包

然后进入hive客户端:可以直接在服务器上使用hive的bin包下的hive进行直接连接,也可以是其他连接方式。

这里有两种方法进行创建,一个是创建临时函数,一个是创建永久函数
1创建临时函数
用此种方式的话,请在sql前加上后面两句
add jar hdfs:///lib/hive_udf/desensitizationjar;
create temporary function desensitization as 'comsfzDesensitization';
注意:这里的desensitization为以后调用的函数名,comsfzDesensitization为jar包里的类路径。
然后可以进行测试
select desensitization("我是傻疯子");
最后删除命令为:(临时函数可以不用删除,窗口关闭后会消失)
drop temporary function desensitization;

2创建永久函数
CREATE FUNCTION udfdesensitization AS 'comsfzDesensitization' USING JAR 'hdfs:///lib/hive_udf/desensitizationjar';
删除命令为DROP FUNCTION IF EXISTS udfdesensitization;
如果需要全局生效,目前来看需要重启hive,否则只对当前客户端有效。

需要用代理服务器
如何设置QQ代理
QQ是使用最多的交流工具,而现在显示IP的QQ大行其道。怎么才能不让别人通过显示IP的QQ获取你的IP呢?同样是设置代理。
启动QQ的登陆界面,在登陆QQ前就可以设置代理了。
点击“高级设置”打开设置的选项,可以设置Socks5代理,>asp代码是运行在服务器端的,当然不可能有msgbox命令啦,难道你想在服务器中d出一个对话框吗看asp是没有任何直接与用户进行交互的命令的。
如果你是想显示出变量a的值,可以这样:
<%
dim a
a=5
responsewrite a
%>
或者可以利用前端脚本来d出对话框:
<%
dim a
a=5
%>
<script>alert("<%=a%>");</script>

开发工具Eclipse+MyEclipse 应用服务器:JBOSS81 数据库连接代码段: Private statio string dat 8 删除标志 SCBZ Integer 8 是否自动下发 SFZDXF Integer 8:删除 9 是否批量处理工单 SFPLCL Integer>>8个相似问题


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/10325385.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-07
下一篇2023-05-07

发表评论

登录后才能评论

评论列表(0条)

    保存