Skip to content

Latest commit

 

History

History
35 lines (23 loc) · 1.08 KB

udf.md

File metadata and controls

35 lines (23 loc) · 1.08 KB

udf.md

支持页面写udf和jar包加载udf

  • 输入函数的名称。sql任务中使用的是这个名称。
  • 选择类型,两种,DEPENDENCY和CODE
  • 如果是DEPENDENCY,在值中填入具体函数类的全路径,如:com.dfire.platform.alchemy.function.logstash.GrokFunction;如果是CODE,在值中填入java代码,必须实现StreamAggregateFunction、StreamScalarFunction、StreamTableFunction中的一个接口,比如:
import com.dfire.platform.alchemy.api.function.StreamScalarFunction;

import java.util.Map;

public class FindAppKey implements StreamScalarFunction<String> {

    @Override
    public String invoke(Object... args) {
        Object arg = args[0];
        if(arg == null){
            return null;
        }
        Map<String, String> map = (Map<String, String>) arg;
        Object value =  map.get("\$appName");
        return value == null ? null : value.toString();
    }
}
  • 如果是DEPENDENCY,在依赖中填入maven依赖,如com.dfire.function:logstash:0.0.1-SNAPSHOT。