hivejava编写udf函数(⼀)创建JAVA 代码--例⼦
package hiveOpt;
import org.apache.hadoop.UDF;
import org.apache.hadoop.io.Text;
public class splitMax extends UDF {
public static int getMax(String[] arr) {
int max = Integer.valueOf(arr[0]);
for (int i = 1; i < arr.length; i++) {
if (Integer.valueOf(arr[i]) > max) {
max = Integer.valueOf(arr[i]);
}
java valueof
}
return max;
}
public Text evaluate(String mdimlr)
{
Text result = new Text();
String[] a = mdimlr.split(",");
result.set(String.valueOf(getMax(a)));
return result;
}
}
(⼆)上传jar到hdfs
hadoop fs -put /data/soft/splitMax.jar /tmp
(三)登录hive命令⾏加载jar
hive> add jar hdfs:///tmp/splitMax.jar;
hive> create temporary function splitmax as 'hiveOpt.splitMax';
hive> show funcations
hive> select splitmax(id) from wobcongfu;
(四)测试⾃定义函数
select phone_num,max(myCol1)
from temp_qiu_test1
LATERAL VIEW explode(split(col1,',')) myTable1 AS myCol1
group by phone_num;

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。