Hive 自定义函数函数
来源:互联网 发布:mac flash卸载 编辑:程序博客网 时间:2024/05/18 13:30
使用内置的函数无法完成分析任务,那么需要写自定义函数
show functions; //查看自带的所有的内置函数
desc function upper; //查看具体的某个函数的用法
desc function extended upper; //带有具体案例
##分三类
## UDF 一进一出 处理原文件内容某些字段包含 [] ""
## UDAF 多进一出 sum() avg() max() min()
## UDTF 一进多出 ip -> 国家 省 市
UDF函数的开发
** 必须继承UDF类
** 重写evaluate函数 支持重载
** 必须要有返回类型,可以返回null,但是返回类型不能为void
** 建议使用Text/LongWritable
## 1.创建一个maven项目
## 2.修改pom.xml文件
<dependency>
<groupId>org.apache.hive</groupId>
<artifactId>hive-jdbc</artifactId>
<version>0.13.1</version>
</dependency>
<dependency>
<groupId>org.apache.hive</groupId>
<artifactId>hive-exec</artifactId>
<version>0.13.1</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-common</artifactId>
<version>2.5.0</version>
</dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-common</artifactId>
<version>2.5.0</version>
</dependency>
## 3.替换repository
## 4.包含hive的依赖的jar的repository
## 代码实现(注意必须实现一个名为evaluate的方法)
import org.apache.hadoop.hive.ql.exec.UDF;
import org.apache.hadoop.io.Text;
public class SalaryUDF extends UDF{
public Text evaluate(Text salaryText){
Text text = new Text();
//1.判断salaryText是否为null
if (salaryText == null) {
return null;
}
//2.判断salaryText是否可转换为一个double类型
double salary = 0;
try {
salary = Double.valueOf(salaryText.toString());
} catch (NumberFormatException e) {
e.printStackTrace();
return null;
}
if (salary > 3000) {
text.set("大于3000的一组...");
return text;
}else if (salary <= 3000 && salary > 2000) {
text.set("小于等于3000并且大于2000的一组...");
return text;
}else {
text.set("小于等于2000的一组");
return text;
}
}
}
5.编写使用UDF
1、编程
2、把程序到出为jar包放到目标机器上去:
hive> add jar /home/beifeng/jars/lower.jar ;
3、创建临时函数:
hive> CREATE TEMPORARY FUNCTION my_lower AS ‘包名.类名';
4、使用指定函数:
hive> show fuctions ;
hive> select my_lower(ename) from emp ;
0 0
- Hive 自定义函数函数
- Hive 自定义函数函数
- 自定义-Hive自定义函数
- HIVE中的自定义函数
- hive用户自定义函数
- HIVE中的自定义函数 .
- HIVE中的自定义函数
- HIVE 自定义函数 UDF
- HIVE中的自定义函数
- hive中的自定义函数
- Hive自定义函数
- Hive自定义函数
- Hive自定义函数
- HIVE 自定义函数
- hive 自定义函数扩展
- Hive--自定义函数
- HIVE自定义函数类型
- Hive中自定义函数
- 实现50人
- Python轻松入门-28 实例变量
- XMPP 学习总结
- mysql管理操作
- JqueryUI学习笔记-选项卡tabs
- Hive 自定义函数函数
- Sqoop导出数据
- Sqoop导入数据
- MATLAB例题及demo分析
- 搭建SQOOP环境
- linux中select函数分析.socket
- hadoop伪分布式环境apache版本切换为CDH
- 修改HDFS上文件的权限
- Glid简单使用(一)