直接将已经在hive 注册成功的jar,在doris 中注册成本地函数。
1、hive UDF函数伪代码
public class hiveFunction extends GenericUDF {
@Override
public ObjectInspector initialize(ObjectInspector[] arguments) throws UDFArgumentLengthException {
if (arguments != null) {
if (arguments.length != 1) {
throw new UDFArgumentLengthException("SRM Decrypt Function only support one argument!");
}
}
return PrimitiveObjectInspectorFactory.javaStringObjectInspector;
}
@Override
public String evaluate(DeferredObject[] arguments) throws HiveException {
//业务逻辑
}
@Override
public String getDisplayString(String[] children) {
return null;
}
}
2、注册本地函数
CREATE FUNCTION udftest(String) RETURNS String PROPERTIES (
"file"="file:///opt/app/apache-doris-bin-x64-noavx2/custom-functions/hive-udf-xxx.jar",
"symbol"="com.xxx.xxx",
"always_nullable"="true",
"type"="JAVA_UDF"
);
3、错误信息
errCode = 2, detailMessage = Multi methods 'evaluate' in class 'com.sunwoda.SrmTenderPriceDecrypt' and no one passed parameter matching verification