Hi, according to the description of the reflect UDF, you are trying to call
java.util.UUID.hashcode(uidString), which doesnt seem to be an existing
method on either java 6/7.

http://docs.oracle.com/javase/7/docs/api/java/util/UUID.html#hashCode()

Thanks
Szehon




On Wed, Apr 2, 2014 at 2:13 PM, Andy Srine <andy.sr...@gmail.com> wrote:

> Hi guys,
>
>
> I am trying to use the reflect UDF for an UUID method and am getting an
> exception. I believe this function should be available in java 1.6.0_31 the
> system is running.
>
>
> select reflect("java.util.UUID", "hashCode", uid_str) my_uid,
>
> ...
>
>
> My suspicion is, this is because the hive column I am calling this on is a
> string and not an UUID. So I nested the reflects as shown below to go from
> a string to an UUID first and then to "hashCode" it.
>
>
> reflect("java.util.UUID", "hashCode", reflect("java.util.UUID",
> "fromString", uid_str)) my_uid,
>
>
> In either case, I always get the exception below though the row of data it
> prints has no null for the uid_str column. Any ideas?
>
>
>  at
> org.apache.hadoop.hive.ql.exec.MapOperator.process(MapOperator.java:565)
>
> at org.apache.hadoop.hive.ql.exec.ExecMapper.map(ExecMapper.java:143)
>
> ... 8 more
>
> Caused by: org.apache.hadoop.hive.ql.metadata.HiveException: UDFReflect
> getMethod
>
> at
> org.apache.hadoop.hive.ql.udf.generic.GenericUDFReflect.evaluate(GenericUDFReflect.java:164)
>
> at
> org.apache.hadoop.hive.ql.exec.ExprNodeGenericFuncEvaluator.evaluate(ExprNodeGenericFuncEvaluator.java:163)
>
> at
> org.apache.hadoop.hive.ql.exec.KeyWrapperFactory$ListKeyWrapper.getNewKey(KeyWrapperFactory.java:113)
>
> at
> org.apache.hadoop.hive.ql.exec.GroupByOperator.processOp(GroupByOperator.java:794)
>
> at org.apache.hadoop.hive.ql.exec.Operator.process(Operator.java:474)
>
> at org.apache.hadoop.hive.ql.exec.Operator.forward(Operator.java:800)
>
> at
> org.apache.hadoop.hive.ql.exec.SelectOperator.processOp(SelectOperator.java:84)
>
> at org.apache.hadoop.hive.ql.exec.Operator.process(Operator.java:474)
>
> at org.apache.hadoop.hive.ql.exec.Operator.forward(Operator.java:800)
>
> at
> org.apache.hadoop.hive.ql.exec.TableScanOperator.processOp(TableScanOperator.java:83)
>
> at org.apache.hadoop.hive.ql.exec.Operator.process(Operator.java:474)
>
> at org.apache.hadoop.hive.ql.exec.Operator.forward(Operator.java:800)
>
> at org.apache.hadoop.hive.ql.exec.MapOperator.process(MapOperator.java:548)
>
> ... 9 more
>
> Caused by: java.lang.NoSuchMethodException: java.util.UUID.hashCode(null)
>
> at java.lang.Class.getMethod(Class.java:1605)
>
> at
> org.apache.hadoop.hive.ql.udf.generic.GenericUDFReflect.evaluate(GenericUDFReflect.java:160)
>
>
> Thanks,
>
> Andy
>
>
>

Reply via email to