Hive中UDF编程
来源:互联网 发布:北京企飞力网络怎么样 编辑:程序博客网 时间:2024/05/22 04:50
开发 UDF 步骤,实现小写转大写
- pom.xml 加入Hive 依赖JAR包
创建类
- 继承UDF
- 方式名称: evaluate
- 返回值不能为null
- 一定要测试
代码
package om.beifeng.bigdata;import org.apache.commons.lang.StringUtils;import org.apache.hadoop.hive.ql.exec.UDF;import org.apache.hadoop.io.Text;/** * * Step 1: * 1. Implement one or more methods named "evaluate" which will be called by Hive. * 2."evaluate" should never be a void method. However it can return "null" if needed. * */public class LowUDF extends UDF{ /** * 实现单词转换为小写字母 * * @param str * @return */ public Text evaluate(Text str){ // invalidate if(null == str){ return null ; } if(StringUtils.isBlank(str.toString())){ return null ; } // 转小写 return new Text(str.toString().toLowerCase()) ; } public static void main(String[] args) { System.out.println(new LowUDF().evaluate(new Text("HADOOOOO"))); }}
使用
- 上传jar包到/opt/datas下
- 加载JAR包到CLASSPATH下面:
add jar /opt/datas/senior-hive-1.0-SNAPSHOT.jar
- 创建临时函数:
- 使用:select ename,my_lower(ename) xx from emp;
0.13版本以后创建永久函数
dfs -put /opt/datas/senior-hive-1.0-SNAPSHOT.jar /user/beifeng/;CREATE FUNCTION my_lower2 AS 'om.beifeng.bigdata.LowUDF' USING JAR 'hdfs://hadoop-senior01.ibeifeng.com:8020/user/beifeng/senior-hive-1.0-SNAPSHOT.jar';
- show functions;
- 上传jar包到/opt/datas下
例:完成去除数据字段中双引号,自定义 UDF
- 原始文件
- 处理后的结果显示在控制台
具体代码
package om.beifeng.bigdata;import java.io.File;import java.io.FileNotFoundException;import java.util.Scanner;import org.apache.commons.lang.StringUtils;import org.apache.hadoop.hive.ql.exec.UDF;import org.apache.hadoop.io.Text;public class QuotationUDF extends UDF{ /** * 实现去除文本中的双引号 * * @param str * @return */ public Text evaluate(Text str){ // invalidate if(null == str){ return null ; } if(StringUtils.isBlank(str.toString())){ return null ; } return new Text(str.toString().replaceAll("\"","")) ; } public static void main(String[] args) { try { Scanner in = new Scanner(new File("/opt/datas/Quotation.txt")); while (in.hasNextLine()) { String str = in.nextLine(); System.out.println(new QuotationUDF().evaluate(new Text(str))); } } catch (FileNotFoundException e) { e.printStackTrace(); } }}
0 0
- Hive中UDF编程
- 十八、Hive 中UDF编程
- Hive的UDF编程
- Hive UDF 编程
- hive之UDF编程
- hive UDF编程
- hive中udf
- Hive中自带Funcion以及UDF编程
- hive中UDF的编写
- hive中udf读写hbase
- Hive中UDF的使用
- Hive 中自定义UDF函数
- hive 中udf,udaf,udtf
- #hive#HIVE中使用python实现UDF
- 编写hive udf和使用hive udf:hue的hive界面中使用hive udf函数、oozie使用hive udf函数、hive命令行使用udf函数
- 编写hive udf和使用hive udf:hue的hive界面中使用hive udf函数、oozie使用hive udf函数、hive命令行使用udf函数
- hive udf
- hive-udf
- 第十二周项目二二进制转换
- JVM内存区域模型
- leetcode(35) - Search Insert Position
- Hadoop集群(第9期)_MapReduce初级案例
- Matlab学习笔记---max
- Hive中UDF编程
- mysql的SQL语句基础归纳
- vr相关文章第一弹,屏幕分辨率和屏幕ppi的区别
- linux进程链与进程扇
- 解决jsp上传文件,重启tomcat后文件和文件夹自动删除
- java中的匿名类与匿名类面试题总结
- 统计信息自动收集时间窗口导致分区表执行计划错误
- Hadoop集群(第10期)_MySQL关系数据库
- 从Keras源码看模型实现