Looks like it's caused by HIVE-7314. Could you try that with
hive.cache.expr.evaluation=false?
Thanks,
Navis
2014-07-24 14:34 GMT+09:00 丁桂涛(桂花) dinggui...@baixing.com:
Yes. The output is correct: [tp,p,sp].
I developed the UDF using JAVA in eclipse and exported the jar file into
the auxlib
Yeah. After setting hive.cache.expr.evaluation=false, all queries output
expected results.
And I found that it's related to the getDisplayString function in the UDF.
At first the function returns a string regardless of its parameters. And I
had to set hive.cache.expr.evaluation = false.
But
Have you tried this query without UDF, say:
select
array(tp, p, sp) as ps
from
(
select
'tp' as tp,
'p' as p,
'sp' as sp
from
table_name
where
id =
) t;
And how you implement the UDF?
谢谢
金杰 (Jie Jin)
On Wed, Jul 23, 2014 at 1:34 PM, 丁桂涛(桂花)
Yes. The output is correct: [tp,p,sp].
I developed the UDF using JAVA in eclipse and exported the jar file into
the auxlib directory of hive. Then add the following line into the
~/.hiverc file.
create temporary function getad as 'xxx';
The hive version is 0.12.0. Perhaps the problem
Recently I developed a Hive Generic UDF *getad*. It accepts a map type and
a string type parameter and outputs a string value. But I found the UDF
output really confusing in different conditions.
Condition A:
select
getad(map_col, 'tp') as tp,
getad(map_col, 'p') as p,
getad(map_col, 'sp')