Support Questions

Find answers, ask questions, and share your expertise
Announcements
Celebrating as our community reaches 100,000 members! Thank you!

Hive reflect function is not allowed

avatar
Explorer

on Sandbox 2.3.2, the following hive query errors out:

SELECT reflect("java.lang.String", "valueOf", 1), reflect("java.lang.String", "isEmpty"), reflect("java.lang.Math", "max", 2, 3), reflect("java.lang.Math", "min", 2, 3), reflect("java.lang.Math", "round", 2.5), reflect("java.lang.Math", "exp", 1.0), reflect("java.lang.Math", "floor", 1.9) FROM hyhelp LIMIT 1;

error message is:

Error while compiling statement: FAILED: SemanticException UDF reflect is not allowed

hiveserver2.log shows:

2016-02-10 22:51:23,461 ERROR [HiveServer2-Handler-Pool: Thread-46]: ql.Driver (SessionState.java:printError(960)) - FAILED: SemanticException UDF reflect is not allowed org.apache.hadoop.hive.ql.parse.SemanticException: UDF reflect is not allowed at org.apache.hadoop.hive.ql.exec.Registry.getFunctionInfo(Registry.java:245) at org.apache.hadoop.hive.ql.exec.FunctionRegistry.getFunctionInfo(FunctionRegistry.java:463) at org.apache.hadoop.hive.ql.exec.FunctionRegistry.impliesOrder(FunctionRegistry.java:1521) at org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.doPhase1GetAllAggregations(SemanticAnalyzer.java:530) at org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.doPhase1GetAggregationsFromSelect(SemanticAnalyzer.java:465) at org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.doPhase1(SemanticAnalyzer.java:1145) at org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.doPhase1(SemanticAnalyzer.java:1415) at org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.doPhase1(SemanticAnalyzer.java:1415) at org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.genResolvedParseTree(SemanticAnalyzer.java:10048) at org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.analyzeInternal(SemanticAnalyzer.java:10106) at org.apache.hadoop.hive.ql.parse.CalcitePlanner.analyzeInternal(CalcitePlanner.java:211) at org.apache.hadoop.hive.ql.parse.BaseSemanticAnalyzer.analyze(BaseSemanticAnalyzer.java:227) at org.apache.hadoop.hive.ql.Driver.compile(Driver.java:424)

....

Is this a configuration issue or there are jar files missing?

Thanks

1 ACCEPTED SOLUTION

avatar
Master Guru

Hi @Herman Yu, on my Sandbox, also HDP-2.3.2 it works, I only changed table name:

hive> SELECT reflect("java.lang.String", "valueOf", 1), reflect("java.lang.String", "isEmpty"), reflect("java.lang.Math", "max", 2, 3), reflect("java.lang.Math", "min", 2, 3), reflect("java.lang.Math", "round", 2.5), reflect("java.lang.Math", "exp", 1.0), reflect("java.lang.Math", "floor", 1.9) FROM st2 limit 1;
OK
1	true	3	2	3	2.718281828459045	1.0
Time taken: 1.97 seconds, Fetched: 1 row(s)

Do other Hive commands and scripts work? Can you try reflect one by one, or, if you copy/pasted the command from somewhere try typing the first reflect.

View solution in original post

5 REPLIES 5

avatar
Master Guru

Hi @Herman Yu, on my Sandbox, also HDP-2.3.2 it works, I only changed table name:

hive> SELECT reflect("java.lang.String", "valueOf", 1), reflect("java.lang.String", "isEmpty"), reflect("java.lang.Math", "max", 2, 3), reflect("java.lang.Math", "min", 2, 3), reflect("java.lang.Math", "round", 2.5), reflect("java.lang.Math", "exp", 1.0), reflect("java.lang.Math", "floor", 1.9) FROM st2 limit 1;
OK
1	true	3	2	3	2.718281828459045	1.0
Time taken: 1.97 seconds, Fetched: 1 row(s)

Do other Hive commands and scripts work? Can you try reflect one by one, or, if you copy/pasted the command from somewhere try typing the first reflect.

avatar
Master Guru

It also works with standard Hue-2.6.1 packaged with HDP-2.3.4 (that's the only one I can try; it should also work with Hue coming with 2.3.2 because it's the same version), I tried:

SELECT reflect("java.lang.Math","exp",2.0), reflect("java.lang.Math","hypot",3.0,4.0) from t2 limit 1;

2076-reflect1.png

avatar
Explorer

Does not work for me either.

avatar
Explorer

Thanks, I think it is a configuration issue. it doesn't work with a customized Hue I installed, doesn't work with Ambari Hive view either, but does work with Hive CLI. I found a walk-around for now, will figure out the configurations later when have time.

thanks.

avatar
Explorer

I am still unable to get this to work. All I am doing is trying to run the query, is there something I need to do in order to get this to work?