Hi,

I'm more than happy to share the little that is there (I will publish it on
github and send link tomorrow).

I ended up copying my UDF (singl-file.java) into the simple-drill-function
project where it got picked up.

Then I discovered a whole new set of dependencies/limitations

   - The UDF are recompiled - any imports are invalid or at least
   overwritten
   -  import org.joda.time.Period; (means that Period class is not resolved
   on runtime)
   - Error: SYSTEM ERROR: CompileException: Line 71, Column 26: Cannot
   determine simple type name "Period"

   - Calling any "outside" functions, like I was calling a static function
   of the new class (same file), leads to an errors as they are not not
   resolved
   -  Error: SYSTEM ERROR: CompileException: Line 70, Column 35: A method
   named "roundTimeStamp" is not declared in any enclosing class nor any
   supertype, nor through a static import

Perhaps this was mentioned in the documentation but this is, at the very
least, not straight forward and super-inviting.

Thank you for your assistance, we will keep trying :)

Regards,
 -Stefan


On Sun, Jul 19, 2015 at 11:34 PM, Tugdual Grall <[email protected]> wrote:

> Hi Stefan,
>
> Do you think you can share your complete project ?
>
> This will help to debug it for you.
>
> T
>
> On Sunday, July 19, 2015, Stefán Baxter <[email protected]> wrote:
>
> > Hi Ted,
> >
> > I fetched this, built it and deployed it without problems.
> > I can not see any real difference other than this deploys two .jar (I
> tried
> > that as well earlier).
> >
> > I'm still trying to figure out why Drill is not picking up my UDFs
> >
> > Regards,
> >  -Stefán
> >
> > On Sun, Jul 19, 2015 at 10:45 PM, Ted Dunning <[email protected]
> > <javascript:;>> wrote:
> >
> > > Stefan,
> > >
> > > Have you seen this github project:
> > >
> > > https://github.com/mapr-demos/simple-drill-functions
> > >
> > > ?
> > >
> > >
> > > On Sun, Jul 19, 2015 at 2:14 PM, Stefán Baxter <
> > [email protected] <javascript:;>>
> > > wrote:
> > >
> > > > Hi Jim,
> > > >
> > > > I'm still not able to make this work. Do you have a sample .jar file
> > > with a
> > > > small example that you are running?
> > > >
> > > > Regards,
> > > >  -Stefan
> > > >
> > > > On Sun, Jul 19, 2015 at 6:46 PM, Ted Dunning <[email protected]
> > <javascript:;>>
> > > > wrote:
> > > >
> > > > >
> > > > > Sounds like a fine example, not because of sophistication but
> because
> > > it
> > > > > deals with dates.
> > > > >
> > > > > Check the drill logs.  It is likely that drill is grumpy about
> > > something
> > > > > in your udf or packaging.
> > > > >
> > > > > Also, feel free to snitch the pom from the simple examples in order
> > to
> > > > get
> > > > > the pieces assembled and packaged correctly.
> > > > >
> > > > > Sent from my iPhone
> > > > >
> > > > > > On Jul 19, 2015, at 11:25, Stefán Baxter <
> > [email protected] <javascript:;>>
> > > > > wrote:
> > > > > >
> > > > > > Hi Jim,
> > > > > >
> > > > > > My UDF is currently so simple that I'm not sure you need it (or
> > want
> > > > it).
> > > > > >
> > > > > > It basically just rounds a timestamp value with ISO 8601 periods
> > > > > > asRoundTimestamp(timestampvalue,'PT10M').
> > > > > >
> > > > > > I would be more than happy to contribute to your project rather
> > than
> > > > > > building our own :).
> > > > > >
> > > > > > Is the repo public?
> > > > > >
> > > > > > Regards,
> > > > > > -Stefan
> > > > > >
> > > > > >
> > > > > >
> > > > > >> On Sun, Jul 19, 2015 at 6:18 PM, Jim Bates <[email protected]
> > <javascript:;>>
> > > > wrote:
> > > > > >>
> > > > > >> Maven will typically create a jar for class and a jar for source
> > > when
> > > > > told
> > > > > >> to do so. I just include the source files in the same jar as the
> > > class
> > > > > >> files. There is a github example drill udf project we are
> working
> > on
> > > > to
> > > > > >> include several examples to simplify the learning curve. If your
> > > > > >> interested... I'd love to have you add your udf.
> > > > > >> On Jul 19, 2015 12:59 PM, "Stefán Baxter" <
> > > [email protected] <javascript:;>>
> > > > > >> wrote:
> > > > > >>
> > > > > >>> Hi again,
> > > > > >>>
> > > > > >>> Going over the documentation once more I came across this:
> > > > > >>>
> > > > > >>>   - Add the sources and classes JAR files to Drill’s classpath.
> > > > > >>>
> > > > > >>> I'm only including a standard .jar (with classes no sources)
> and
> > I
> > > > > wonder
> > > > > >>> why this dependency is listed.
> > > > > >>>
> > > > > >>> Anyways, that it the next step.
> > > > > >>>
> > > > > >>> A sample .jar that works with the drill-config counterpart
> would
> > > be a
> > > > > >>> welcome addition to the documentation.
> > > > > >>>
> > > > > >>> Regards,
> > > > > >>> -Stefan
> > > > > >>>
> > > > > >>>
> > > > > >>> On Sun, Jul 19, 2015 at 5:53 PM, Stefán Baxter <
> > > > > >> [email protected] <javascript:;>>
> > > > > >>> wrote:
> > > > > >>>
> > > > > >>>> Hi Jim,
> > > > > >>>>
> > > > > >>>> Now I have added the file to the jar (both root and resources
> > > > folder)
> > > > > >> but
> > > > > >>>> that does not seem to change anything.
> > > > > >>>>
> > > > > >>>> Any additional ideas?
> > > > > >>>>
> > > > > >>>> Regards,
> > > > > >>>> -Stefan
> > > > > >>>>
> > > > > >>>> On Sun, Jul 19, 2015 at 5:40 PM, Stefán Baxter <
> > > > > >>> [email protected] <javascript:;>>
> > > > > >>>> wrote:
> > > > > >>>>
> > > > > >>>>> NO!
> > > > > >>>>>
> > > > > >>>>> Thank you , will do that right now :)
> > > > > >>>>>
> > > > > >>>>> On Sun, Jul 19, 2015 at 5:38 PM, Jim Bates <
> > [email protected] <javascript:;>>
> > > > > >> wrote:
> > > > > >>>>>
> > > > > >>>>>> Did you include a file drill-module.conf in your jar along
> > with
> > > > > >> source
> > > > > >>>>>> files?
> > > > > >>>>>> On Jul 19, 2015 12:20 PM, "Stefán Baxter" <
> > > > > [email protected] <javascript:;>
> > > > > >>>
> > > > > >>>>>> wrote:
> > > > > >>>>>>
> > > > > >>>>>>> Hi,
> > > > > >>>>>>>
> > > > > >>>>>>> I'm trying to deploy a UDF that I have written according to
> > the
> > > > > >>>>>>> documentation.
> > > > > >>>>>>>
> > > > > >>>>>>> I have also:
> > > > > >>>>>>>
> > > > > >>>>>>>   1. Copied the jar file
> > > > > >>>>>>>   to jars/3rdparty
> > > > > >>>>>>>
> > > > > >>>>>>>   2. Changed the config "conf/drill-override.conf" to
> > include:
> > > > > >>>>>>>   drill.logical.function.package +=
> > > > > >>
> > > ["org.apache.drill.exec.expr.fn.impl","com.activitystream.drill.udfs"]
> > > > > >>>>>>>
> > > > > >>>>>>>   3. Rerun the Drillbit
> > > > > >>>>>>>   bin/drillbit.sh start
> > > > > >>>>>>>
> > > > > >>>>>>> The log shows no sign of the the UDF being loaded but if I
> > use
> > > it
> > > > > >> in
> > > > > >>> a
> > > > > >>>>>> SQL
> > > > > >>>>>>> statement then this error is thrown:
> > > > > >>>>>>>
> > > > > >>>>>>> Error: PARSE ERROR: From line 1, column 184 to line 1,
> column
> > > > 219:
> > > > > >> No
> > > > > >>>>>> match
> > > > > >>>>>>> found for function signature asRoundTimeStamp(<ANY>,
> > > <CHARACTER>)
> > > > > >>>>>>>
> > > > > >>>>>>>
> > > > > >>>>>>> The relevant part of the UDF source:
> > > > > >>>>>>>
> > > > > >>>>>>> package com.activitystream.drill.udfs;
> > > > > >>>>>>>
> > > > > >>>>>>> public class ASUserDefinedFunctions {
> > > > > >>>>>>>
> > > > > >>>>>>>    @FunctionTemplate(name = "asRoundTimeStamp", scope =
> > > > > >>>>>>> FunctionTemplate.FunctionScope.SIMPLE, nulls =
> > > > > >>>>>>> FunctionTemplate.NullHandling.NULL_IF_NULL)
> > > > > >>>>>>>
> > > > > >>>>>>>    public static class RoundTimeStamp implements
> > > DrillSimpleFunc
> > > > > >>>>>>>
> > > > > >>>>>>>
> > > > > >>>>>>> Can anyone please assist?
> > > > > >>>>>>>
> > > > > >>>>>>> Regards,
> > > > > >>>>>>> -Stefan
> > > > > >>
> > > > >
> > > >
> > >
> >
>

Reply via email to