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