Hey, I’m using Drill 1.6.0.
> Am 20.05.2016 um 20:37 schrieb Abdel Hakim Deneche <adene...@maprtech.com>: > > What version of Drill are you using ? > > On Fri, May 20, 2016 at 11:28 AM, Julian Feinauer <julian.feina...@web.de> > wrote: > >> Hey Abdel, >> >> I renamed it due to your previous hint with the static subclass. >> But the SQL Commands still returns: >> 0: jdbc:drill:> SELECT myintadd(CAST(position_id AS int),CAST(store_id AS >> int)) FROM cp.`employee.json`; >> Error: VALIDATION ERROR: From line 1, column 8 to line 1, column 63: No >> match found for function signature myintadd(<NUMERIC>, <NUMERIC>) >> >> So this has to be something wrong with my drill setup? >> >> All I do is to start my drillbit with drillbit.sh start (or restart) and >> then start drill-conf where the conf/drill-override.conf contains: >> drill.exec: { >> cluster-id: "drillbits1", >> zk.connect: "localhost:2181" >> } >> >> There’s one other thing that seems strange to me with my setup: >> Although I set the loglevel in conf/logback.xml to trace the drillbit.log >> file does not show any trace outputs. >> >> Am I doing something wrong with my setup? >> >> Thanks >> Julian >> >>> Am 20.05.2016 um 20:13 schrieb Abdel Hakim Deneche < >> adene...@maprtech.com>: >>> >>> You defined your function as myintadd: >>> >>> >>> @FunctionTemplate(name = "*myintadd*", scope ... >>> >>> >>> The following query worked fine for me: >>> >>> SELECT *myintadd*(CAST(position_id AS int),CAST(store_id AS int)) FROM >>>> cp.`employee.json`; >>> >>> >>> Thanks >>> >>> >>> >>> >>> >>> On Fri, May 20, 2016 at 10:17 AM, Julian Feinauer < >> julian.feina...@web.de> >>> wrote: >>> >>>> Dear Jacques, >>>> Dear Abdel, >>>> >>>> thanks for your kind help. >>>> >>>> jar tf drillUDF-1.0-SNAPSHOT.jar returns: >>>> >>>> META-INF/ >>>> META-INF/MANIFEST.MF >>>> org/ >>>> org/apache/ >>>> org/apache/drill/ >>>> org/apache/drill/contrib/ >>>> org/apache/drill/contrib/function/ >>>> org/julian/ >>>> drill-module.conf >>>> IntIntAdd.class >>>> org/apache/drill/contrib/function/IntIntAdd.class >>>> org/julian/IntIntAdd$myintadd.class >>>> org/julian/IntIntAdd.class >>>> org/julian/IntIntAdd.java >>>> META-INF/maven/ >>>> META-INF/maven/julian.test/ >>>> META-INF/maven/julian.test/drillUDF/ >>>> META-INF/maven/julian.test/drillUDF/pom.xml >>>> META-INF/maven/julian.test/drillUDF/pom.properties >>>> >>>> And jar tf drillUDF-1.0-SNAPSHOT-sources.jar returns >>>> META-INF/ >>>> META-INF/MANIFEST.MF >>>> org/ >>>> org/apache/ >>>> org/apache/drill/ >>>> org/apache/drill/contrib/ >>>> org/apache/drill/contrib/function/ >>>> org/julian/ >>>> org/julian/IntIntAdd.java >>>> drill-module.conf >>>> >>>> so the drill-module.conf is in both roots. >>>> >>>> @Abdel: >>>> How or where can I share the jar files with you? >>>> >>>> Best regards >>>> Julian >>>> >>>>> Am 20.05.2016 um 17:31 schrieb Jacques Nadeau <jacq...@dremio.com>: >>>>> >>>>> Can you run jar tf myudf.jar against your jar files? Since Drill is >> not >>>>> detecting the jar file, we need to resolve that first. The >>>>> drill-module.conf must be in the root of each jar file that should be >>>>> included. Lets start by verifying that. >>>>> >>>>> -- >>>>> Jacques Nadeau >>>>> CTO and Co-Founder, Dremio >>>>> >>>>> On Fri, May 20, 2016 at 6:08 AM, Julian Feinauer < >> julian.feina...@web.de >>>>> >>>>> wrote: >>>>> >>>>>> Dear all, >>>>>> >>>>>> thank you very much for all your replies. >>>>>> I tried everything but it is still not working. >>>>>> >>>>>> 1. I copy both files (classes and sources) in the /jars/3rdparty >>>> directory >>>>>> 2. I restarted the drillbit after this (I use only one drillbit and >>>>>> drill-conf both running on my local machine) >>>>>> 3. I changed the class to a static subclass >>>>>> 4. I have the drill-module.conf in my ressources >>>>>> 4. The error appears in the drillbit.log as soon as i call the udf >>>> because >>>>>> it is not recognized by drill. >>>>>> On startup drillbit.log states all the packages and jars that are >>>> scanned >>>>>> and my custom jar is not listed there. >>>>>> Therefore I think it is a problem with the class loader or something >>>>>> related? >>>>>> >>>>>> Could this be possible? >>>>>> >>>>>> Greetings >>>>>> Julian >>>>>> >>>>>>> Am 20.05.2016 um 14:36 schrieb Tugdual Grall <tugd...@gmail.com>: >>>>>>> >>>>>>> Hi >>>>>>> >>>>>>> Be sure you deploy on each nodes, 2 jars: >>>>>>> - the jar containing the classes >>>>>>> - the jar contains the sources >>>>>>> >>>>>>> The POM.xml in the simple function examples contains the maven >>>>>>> configuration to generate these 2 files, be sure you have the same in >>>>>> your >>>>>>> project: >>>>>>> >>>>>> >>>> >> https://github.com/tgrall/drill-simple-mask-function/blob/master/pom.xml#L24-L37 >>>>>>> >>>>>>> and you have restarted the drillbit >>>>>>> >>>>>>> Regards >>>>>>> Tug >>>>>>> @tgrall >>>>>>> >>>>>>> >>>>>>> >>>>>>> On Fri, May 20, 2016 at 12:34 AM, Abdel Hakim Deneche < >>>>>> adene...@maprtech.com >>>>>>>> wrote: >>>>>>> >>>>>>>> the example I gave you was incomplete, here is what I meant to send: >>>>>>>> >>>>>>>> public class MyUDF { >>>>>>>> >>>>>>>> @FunctionTemplate(name = „myaddints", scope = FunctionTemplate. >>>>>>>> FunctionScope.SIMPLE, nulls = >>>>>>>> FunctionTemplate.NullHandling.NULL_IF_NULL) >>>>>>>> public *static *class IntIntAdd implements DrillSimpleFunc { >>>>>>>> ... >>>>>>>> } >>>>>>>> >>>>>>>> } >>>>>>>> >>>>>>>> >>>>>>>> On Thu, May 19, 2016 at 3:33 PM, Abdel Hakim Deneche < >>>>>>>> adene...@maprtech.com> >>>>>>>> wrote: >>>>>>>> >>>>>>>>> Hey Julian, >>>>>>>>> >>>>>>>>> one more thing you could try out: declare the UDF as a static class >>>>>>>> inside >>>>>>>>> another class: >>>>>>>>> >>>>>>>>> public class MyUDF { >>>>>>>>> >>>>>>>>> @FunctionTemplate(name = „myaddints", scope = FunctionTemplate. >>>>>>>>> FunctionScope.SIMPLE, nulls = FunctionTemplate.NullHandling. >>>>>>>>> NULL_IF_NULL) >>>>>>>>> public class IntIntAdd implements DrillSimpleFunc { >>>>>>>>> ... >>>>>>>>> } >>>>>>>>> >>>>>>>>> } >>>>>>>>> >>>>>>>>> Take a look at the following page to see an examples of UDFs: >>>>>>>>> http://drill.apache.org/docs/custom-function-interfaces/ >>>>>>>>> >>>>>>>>> If this doesn't work check the drillbit log, it should print an >> error >>>>>>>>> message when it's starting up if something's wrong with your UDF. >>>>>>>>> >>>>>>>>> Thanks >>>>>>>>> >>>>>>>>> >>>>>>>>> On Thu, May 19, 2016 at 3:31 AM, Julian Feinauer < >>>>>> julian.feina...@web.de >>>>>>>>> >>>>>>>>> wrote: >>>>>>>>> >>>>>>>>>> Dear folks, >>>>>>>>>> >>>>>>>>>> I’m currently experimenting with user defined functions in drill >> but >>>>>> I’m >>>>>>>>>> not able to get them to work on my drillbits. >>>>>>>>>> I always get the error: Error: VALIDATION ERROR: From line 1, >>>> column 8 >>>>>>>> to >>>>>>>>>> line 1, column 41: No match found for function signature >>>>>>>> myaddints(<ANY>, >>>>>>>>>> <ANY>). >>>>>>>>>> >>>>>>>>>> I already went through all the tips I found in the mailing list. >>>>>>>>>> The jar contains a drill-module.conf with the content: >>>>>>>>>> drill.classpath.scanning.packages += "org.julian" >>>>>>>>>> And the UDF is defined as: >>>>>>>>>> package org.julian; >>>>>>>>>> >>>>>>>>>> import ... >>>>>>>>>> >>>>>>>>>> @FunctionTemplate(name = „myaddints", scope = >>>>>>>>>> FunctionTemplate.FunctionScope.SIMPLE, nulls = >>>>>>>>>> FunctionTemplate.NullHandling.NULL_IF_NULL) >>>>>>>>>> public class IntIntAdd implements DrillSimpleFunc { >>>>>>>>>> >>>>>>>>>> @Param >>>>>>>>>> IntHolder in1; >>>>>>>>>> >>>>>>>>>> @Param >>>>>>>>>> IntHolder in2; >>>>>>>>>> >>>>>>>>>> @Output >>>>>>>>>> IntHolder out; >>>>>>>>>> >>>>>>>>>> public void setup() {}; >>>>>>>>>> >>>>>>>>>> public void eval() { >>>>>>>>>> out.value = in1.value + in2.value; >>>>>>>>>> } >>>>>>>>>> >>>>>>>>>> } >>>>>>>>>> I tried to find the bug using the logs and encountered the >> following >>>>>>>>>> messages from the drillbit.log: >>>>>>>>>> Base Configuration: >>>>>>>>>> - >>>>>>>>>> >>>>>>>> >>>>>> >>>> >> jar:file:/usr/local/Cellar/apache-drill/1.6.0/libexec/jars/drill-common-1.6.0.jar!/drill-default.conf >>>>>>>>>> >>>>>>>>>> Intermediate Configuration and Plugin files, in order of >> precedence: >>>>>>>>>> - >>>>>>>>>> >>>>>>>> >>>>>> >>>> >> jar:file:/usr/local/Cellar/apache-drill/1.6.0/libexec/jars/drill-gis-1.6.0.jar!/drill-module.conf >>>>>>>>>> - >>>>>>>>>> >>>>>>>> >>>>>> >>>> >> jar:file:/usr/local/Cellar/apache-drill/1.6.0/libexec/jars/drill-logical-1.6.0.jar!/drill-module.conf >>>>>>>>>> - >>>>>>>>>> >>>>>>>> >>>>>> >>>> >> jar:file:/usr/local/Cellar/apache-drill/1.6.0/libexec/jars/drill-kudu-storage-1.6.0.jar!/drill-module.conf >>>>>>>>>> - >>>>>>>>>> >>>>>>>> >>>>>> >>>> >> jar:file:/usr/local/Cellar/apache-drill/1.6.0/libexec/jars/3rdparty/drill-memory-base-1.6.0.jar!/drill-module.conf >>>>>>>>>> - >>>>>>>>>> >>>>>>>> >>>>>> >>>> >> jar:file:/usr/local/Cellar/apache-drill/1.6.0/libexec/jars/drill-hive-exec-shaded-1.6.0.jar!/drill-module.conf >>>>>>>>>> - >>>>>>>>>> >>>>>>>> >>>>>> >>>> >> jar:file:/usr/local/Cellar/apache-drill/1.6.0/libexec/jars/drill-memory-base-1.6.0.jar!/drill-module.conf >>>>>>>>>> - >>>>>>>>>> >>>>>>>> >>>>>> >>>> >> jar:file:/usr/local/Cellar/apache-drill/1.6.0/libexec/jars/drill-mongo-storage-1.6.0.jar!/drill-module.conf >>>>>>>>>> - >>>>>>>>>> >>>>>>>> >>>>>> >>>> >> jar:file:/usr/local/Cellar/apache-drill/1.6.0/libexec/jars/drill-java-exec-1.6.0.jar!/drill-module.conf >>>>>>>>>> - >>>>>>>>>> >>>>>>>> >>>>>> >>>> >> jar:file:/usr/local/Cellar/apache-drill/1.6.0/libexec/jars/drill-common-1.6.0.jar!/drill-module.conf >>>>>>>>>> - >>>>>>>>>> >>>>>>>> >>>>>> >>>> >> jar:file:/usr/local/Cellar/apache-drill/1.6.0/libexec/jars/drill-storage-hbase-1.6.0.jar!/drill-module.conf >>>>>>>>>> - >>>>>>>>>> >>>>>>>> >>>>>> >>>> >> jar:file:/usr/local/Cellar/apache-drill/1.6.0/libexec/jars/drill-jdbc-storage-1.6.0.jar!/drill-module.conf >>>>>>>>>> - >>>>>>>>>> >>>>>>>> >>>>>> >>>> >> jar:file:/usr/local/Cellar/apache-drill/1.6.0/libexec/jars/drill-storage-hive-core-1.6.0.jar!/drill-module.conf >>>>>>>>>> >>>>>>>>>> which let’s me think that my jar file (drillUDF-1.0-SNAPSHOT.jar) >> is >>>>>> not >>>>>>>>>> scanned altough it is located in jars/3rdparty. >>>>>>>>>> >>>>>>>>>> Am I doing something wrong or am I missing something or has >> anyone a >>>>>>>> good >>>>>>>>>> hint for me? >>>>>>>>>> >>>>>>>>>> Thank you already! >>>>>>>>>> Julian >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> -- >>>>>>>>> >>>>>>>>> Abdelhakim Deneche >>>>>>>>> >>>>>>>>> Software Engineer >>>>>>>>> >>>>>>>>> <http://www.mapr.com/> >>>>>>>>> >>>>>>>>> >>>>>>>>> Now Available - Free Hadoop On-Demand Training >>>>>>>>> < >>>>>>>> >>>>>> >>>> >> http://www.mapr.com/training?utm_source=Email&utm_medium=Signature&utm_campaign=Free%20available >>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> >>>>>>>> Abdelhakim Deneche >>>>>>>> >>>>>>>> Software Engineer >>>>>>>> >>>>>>>> <http://www.mapr.com/> >>>>>>>> >>>>>>>> >>>>>>>> Now Available - Free Hadoop On-Demand Training >>>>>>>> < >>>>>>>> >>>>>> >>>> >> http://www.mapr.com/training?utm_source=Email&utm_medium=Signature&utm_campaign=Free%20available >>>>>>>>> >>>>>>>> >>>>>> >>>>>> >>>> >>>> >>> >>> >>> -- >>> >>> Abdelhakim Deneche >>> >>> Software Engineer >>> >>> <http://www.mapr.com/> >>> >>> >>> Now Available - Free Hadoop On-Demand Training >>> < >> http://www.mapr.com/training?utm_source=Email&utm_medium=Signature&utm_campaign=Free%20available >>> >> >> > > > -- > > Abdelhakim Deneche > > Software Engineer > > <http://www.mapr.com/> > > > Now Available - Free Hadoop On-Demand Training > <http://www.mapr.com/training?utm_source=Email&utm_medium=Signature&utm_campaign=Free%20available>