集成蜂巢udf, UDAFs UDTFs
適用於:磚運行時
火花SQL支持集成的蜂巢udf, UDAFs, UDTFs。類似於火花udf和UDAFs,蜂巢udf工作一行作為輸入,並生成一行作為輸出,而蜂巢UDAFs操作多個行,並返回一個結果彙總行。此外,蜂巢還支持UDTFs(用戶定義的表函數),作用於一行作為輸入,並返回多行作為輸出。使用蜂巢udf / UDAFs /中的,用戶應在火花注冊,然後在火花SQL查詢中使用它們。
例子
蜂巢有兩個UDF接口:UDF和GenericUDF。下麵一個例子使用GenericUDFAbs來自GenericUDF
。
——注冊“GenericUDFAbs”用在火花SQL。——注意,如果你使用自己的程序,您需要添加一個JAR包含它——到類路徑中,——例如,添加JAR yourHiveUDF.jar;創建臨時函數testUDF作為“org.apache.hadoop.hive.ql.udf.generic.GenericUDFAbs”;選擇*從t;+- - - - - - +|價值|+- - - - - - +|- - - - - -1。0||2。0||- - - - - -3。0|+- - - - - - +選擇testUDF(價值)從t;+- - - - - - - - - - - - - - - - +|testUDF(價值)|+- - - - - - - - - - - - - - - - +|1。0||2。0||3。0|+- - - - - - - - - - - - - - - - +
下麵一個例子使用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接口:UDAF和GenericUDAFResolver。下麵一個例子使用GenericUDAFSum來自GenericUDAFResolver
。
——注冊“GenericUDAFSum”用在火花SQL創建臨時函數hiveUDAF作為“org.apache.hadoop.hive.ql.udf.generic.GenericUDAFSum”;選擇*從t;+- - - + - - - +|關鍵|價值|+- - - + - - - +|一個|1||一個|2||b|3|+- - - + - - - +選擇關鍵,hiveUDAF(價值)從t集團通過關鍵;+推薦- - - - - - + - - - - - - - - - - - - - - - - - - +|關鍵|hiveUDAF(價值)|+推薦- - - - - - + - - - - - - - - - - - - - - - - - - +|b|3||一個|3|+推薦- - - - - - + - - - - - - - - - - - - - - - - - - +