Env:
Drill 1.4MapR 5.0
Goal:
How to create custom UDF for Apache DrillSolution:
1. Create UDF java code
Refer to documentation: https://drill.apache.org/docs/develop-custom-functions-introduction/Sample code is: https://github.com/viadea/DrillUDF
a. Make sure UDF code has the annotation which contains the function name.
For example in DupString.java
@FunctionTemplate(name = "dup_string", scope = FunctionScope.SIMPLE, nulls = NullHandling.NULL_IF_NULL)b. Make sure UDF code package contains a drill-module.conf with the classpath inside.
[root@v1 DrillUDF]# cat src/main/resources/drill-module.conf drill.classpath.scanning.packages += "openkb.drill.udf"c. Build
mvn clean package
2. Put the JAR file into /jars/3rdparty directory on all Drill nodes.
clush -a cp /xxx/target/*.jar /opt/mapr/drill/drill-1.4.0/jars/3rdparty/
3. Restart all drill-bits.
maprcli node services -name drill-bits -action restart -filter csvc=="drill-bits"
4. Test the UDF in Drill
> select myaddints(1.2, 3.2) from sys.version; +---------+ | EXPR$0 | +---------+ | 4.4 | +---------+ 1 row selected (0.409 seconds) > select dup_string('abc',3) from sys.version; +------------+ | EXPR$0 | +------------+ | abcabcabc | +------------+ 1 row selected (2.839 seconds)
No comments:
Post a Comment