第39天: UDF函数 user defined function

时间:2021-01-04 09:10:01
Hive学习实战   
--------------------------------------------------------------
Hive从入门到实战【40讲】---笔记记录
--------------------------------------------------------------
 
hive命令
1、show tables;
2、show databases;
3、 desc login; ---查看表结构。
4、 show partitions test5; --查看分区

create table login_struct(
 ip string,
 user struct<uid:bigint,name :string>
 )
 partitioned by (dt string)
 row format delimited
 fields terminated by ','
 collection items terminated by '|'
 stored as textfile;


load data local inpath
'/hadoop/hive0.9/testHive/login_struct.txt'
into table login_struct  partition (dt='2015-02-07');

第38天: UDF函数

 hive进行UDF的开发非常简单
 此处说的UDF为
 Temporary的function
 
 背景:
 支持用户定制:
 1、文件格式 text File  Sequence File
 2、内存中的数据格式,java integer string
 3、用户提供的map、reduce脚本,不管什么语言,
 4、用户自定义的函数:substr,trim
 5、用户自定义的聚合函数 sum average


UDF
定义: UDF(user-defined-function)
用户自定义的函数对数据进行处理

用法
1、udf函数可以直接应用于select语句,对
查询结果做格式化处理后,在输出内容。

2、编写udf函数的时候,需要注意一下几点
 a 自定义的UDF需要集成org.apache.hadoop.hive.ql.UDF
 b 需要实现evaluate函数
 c evaluate 函数支持重载。



UDF步骤

1、把程序打包jar包放入到目标机器上去、
2、进入hive,操作 hive>add jar /opt/test/jar/udf_test.jar
3、创建临时函数:hive>create  temporary function
 add_test as 'hive.udf.add';

 查询HQL语句

 select add_test('abc') from test;
 4、销毁临时函数
    hive> drop temporary function add_test;






/hadoop/hive/testhivew/add_test2.jar
create  temporary function
 add_test as 'hive.AddTest';


select add_test(1,2) from a2;



select add_test(ip,user) from a2;