构成
一、Java脚本实现想要实现的功能。
二、另外一个部分为HQL部分,调用Java脚本对数据进行处理。
一、Java部分
编写UDF函数,首先要继承UDF类并且实现evaluate()
函数。对于每一行输入都会调用到evaluate()
函数。而evaluate()
函数处理后的值会返回给Hive。
注意:evaluate()
函数的参数和返回值类型只能是Hive可以序列化的数据类型。
比如:输入一个数字,输出从1到该数字的一个列表
可用main函数测试,结果为:
二、在hive中添加jar包
add jar hdfs:///zeus/hdfs-upload-dir/scale.jar-20180903-103859.jar;
三、在hive中使用UDF函数
add jar jar包路径;
create temporary function Scale as "ctrip.Scale";
select masterhotelid,
Scale(max_price) as scale
from table;