集成蜂巢udf, UDAFs UDTFs

適用於:檢查標記是的磚運行時

火花SQL支持集成的蜂巢udf, UDAFs, UDTFs。類似於火花udf和UDAFs,蜂巢udf工作一行作為輸入,並生成一行作為輸出,而蜂巢UDAFs操作多個行,並返回一個結果彙總行。此外,蜂巢還支持UDTFs(用戶定義的表函數),作用於一行作為輸入,並返回多行作為輸出。使用蜂巢udf / UDAFs /中的,用戶應在火花注冊,然後在火花SQL查詢中使用它們。

例子

蜂巢有兩個UDF接口:UDFGenericUDF。下麵一個例子使用GenericUDFAbs來自GenericUDF

——注冊“GenericUDFAbs”用在火花SQL。——注意,如果你使用自己的程序,您需要添加一個JAR包含它——到類路徑中,——例如,添加JAR yourHiveUDF.jar;創建臨時函數testUDF作為“org.apache.hadoop.hive.ql.udf.generic.GenericUDFAbs”;選擇*t;+- - - - - - +|價值|+- - - - - - +|- - - - - -10||20||- - - - - -30|+- - - - - - +選擇testUDF(價值)t;+- - - - - - - - - - - - - - - - +|testUDF(價值)|+- - - - - - - - - - - - - - - - +|10||20||30|+- - - - - - - - - - - - - - - - +

下麵一個例子使用GenericUDTFExplode來自GenericUDTF

——注冊“GenericUDTFExplode”用在火花SQL創建臨時函數hiveUDTF作為“org.apache.hadoop.hive.ql.udf.generic.GenericUDTFExplode”;選擇*t;+- - - - - - +|價值|+- - - - - - +|(1,2]||(3,4]|+- - - - - - +選擇hiveUDTF(價值)t;+推薦- - - - - - +|上校|+推薦- - - - - - +|1||2||3||4|+推薦- - - - - - +

蜂巢有兩個UDAF接口:UDAFGenericUDAFResolver。下麵一個例子使用GenericUDAFSum來自GenericUDAFResolver

——注冊“GenericUDAFSum”用在火花SQL創建臨時函數hiveUDAF作為“org.apache.hadoop.hive.ql.udf.generic.GenericUDAFSum”;選擇*t;+- - - + - - - +|關鍵|價值|+- - - + - - - +|一個|1||一個|2||b|3|+- - - + - - - +選擇關鍵,hiveUDAF(價值)t集團通過關鍵;+推薦- - - - - - + - - - - - - - - - - - - - - - - - - +|關鍵|hiveUDAF(價值)|+推薦- - - - - - + - - - - - - - - - - - - - - - - - - +|b|3||一個|3|+推薦- - - - - - + - - - - - - - - - - - - - - - - - - +