Java实现Hive的UDF(案例)

时间:2024-05-18 21:49:18

构成

一、Java脚本实现想要实现的功能。

二、另外一个部分为HQL部分,调用Java脚本对数据进行处理。

一、Java部分

       编写UDF函数,首先要继承UDF类并且实现evaluate()函数。对于每一行输入都会调用到evaluate()函数。而evaluate()函数处理后的值会返回给Hive。

        注意:evaluate()函数的参数和返回值类型只能是Hive可以序列化的数据类型。

比如:输入一个数字,输出从1到该数字的一个列表

Java实现Hive的UDF(案例)

可用main函数测试,结果为:

Java实现Hive的UDF(案例)

二、在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;