hive-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Navis류승우 <navis....@nexr.com>
Subject Re: hive udf cannot recognize generic method
Date Fri, 01 Aug 2014 08:07:19 GMT
I've booked this on https://issues.apache.org/jira/browse/HIVE-7588.

With the patch, something like below are possible.

// unknown input
public String evaluate(Object arg) {
  return arg == null ? null : String.valueOf(arg);
}
// typed variable
public <T> T evaluate(T arg) {
  return arg;
}
// typed variable, nested
public <T> T evaluate(Map<String, T> arg) {
  return arg.values().iterator().next();
}

Thanks,
Navis


2014-07-31 3:37 GMT+09:00 Jason Dere <jdere@hortonworks.com>:

> Sounds like you are using the older style UDF class.  In that case, yes
> you would have to override evaluate() for each type of input.
> You could also try overriding the GenericUDF class - that would allow you
> to do a single method, though it may be a bit more complicated (can look at
> the Hive code for some examples)
>
>
> On Jul 30, 2014, at 7:43 AM, Dan Fan <dfan@appnexus.com> wrote:
>
> > Hi there
> >
> > I am writing a hive UDF function. The input could be string, int, double
> etc.
> > The return is based on the data type. I was trying to use the generic
> method, however, hive seems not recognize it.
> > Here is the piece of code I have as example.
> >
> >   public <T> T evaluate(final T s, final String column_name, final int
> bitmap) throws Exception {
> >
> >      if (s instanceof Double)
> >             return (T) new Double(-1.0);
> >      Else if( s instance of Integer)
> >             Return (T) new Integer(-1) ;
> > …..
> > }
> >
> > Does anyone know if hive supports the generic method ? Or I have to
> override the evaluate method for each type of input.
> >
> > Thanks
> >
> > Dan
> >
>
>
> --
> CONFIDENTIALITY NOTICE
> NOTICE: This message is intended for the use of the individual or entity to
> which it is addressed and may contain information that is confidential,
> privileged and exempt from disclosure under applicable law. If the reader
> of this message is not the intended recipient, you are hereby notified that
> any printing, copying, dissemination, distribution, disclosure or
> forwarding of this communication is strictly prohibited. If you have
> received this communication in error, please contact the sender immediately
> and delete it from your system. Thank You.
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message