GenericUDAF使用流程记载(转载+自己整理)
概述
本文是對[1]的整理和復(fù)現(xiàn)。
環(huán)境
| 組件 | 版本 | 
| Hadoop | 3.1.2 | 
| Zookeeper | 3.6.0 | 
| Mysql | 8.0.22-0ubuntu0.20.04.2 | 
| Hive | 3.1.2 | 
Hive準(zhǔn)備工作
use db1;
 create table address?(addressid int, province string, city string) row format delimited fields terminated by ',';
 insert into address values(1,'guangdong','guangzhou');
 insert into address values(1,'guangdong','guangzhou');
 insert into address values(2,'guangdong','shenzhen');
 insert into address values(3,'shanxi','xian');
 insert into address values(4,'shanxi','hanzhong');
 insert into address values(6,'jiangshu','nanjing');
?
注冊GenericUDAF流程
| 注冊命令(hive/beeline中進(jìn)行) | 備注 | 
| add jar /home/appleyuchi/桌面/Flink_Code/FLINK讀寫各種數(shù)據(jù)源/Java/target/table_api-1.0-SNAPSHOT.jar; | 指明自定義依賴包 | 
| create temporary function udf_fieldlength as 'FieldLength'; | 依賴包中的FieldLength注冊為udf_fieldlength | 
?
使用GenericUDAF流程
| hive命令 | 實驗結(jié)果 | 備注 | 
|   use db1; select * from address;  |   1?? ?guangdong?? ?guangzhou 3?? ?shanxi?? ?xian  | 檢查hive功能是否ok | 
| select province, count(city), udf_fieldlength(city) from address group by province; | guangdong?? ?15?? ?133 shanxi?? ?1?? ?4  | 使用寫好的udaf | 
?
完整代碼:
https://gitee.com/appleyuchi/Flink_Code/blob/master/FLINK讀寫各種數(shù)據(jù)源/Java/src/main/java/FieldLength.java
https://gitee.com/appleyuchi/Flink_Code/blob/master/FLINK讀寫各種數(shù)據(jù)源/Java/src/main/java/FieldLengthUDAFEvaluator.java
https://gitee.com/appleyuchi/Flink_Code/blob/master/FLINK讀寫各種數(shù)據(jù)源/Java/src/main/java/FieldLengthAggregationBuffer.java
?
Reference:
[1]hive學(xué)習(xí)筆記之十:用戶自定義聚合函數(shù)(UDAF)
?
總結(jié)
以上是生活随笔為你收集整理的GenericUDAF使用流程记载(转载+自己整理)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: Flink SQL Client方言切换
 - 下一篇: Hive的六种UDF完整实例与使用方法汇