You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hive.apache.org by "gaoxiong (Jira)" <ji...@apache.org> on 2023/12/18 14:02:00 UTC

[jira] [Commented] (HIVE-27960) Invalid function error when using custom udaf

    [ https://issues.apache.org/jira/browse/HIVE-27960?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17798215#comment-17798215 ] 

gaoxiong commented on HIVE-27960:
---------------------------------

I have slove this issue. Please review the changes. Thanks.

> Invalid function error when using custom udaf
> ---------------------------------------------
>
>                 Key: HIVE-27960
>                 URL: https://issues.apache.org/jira/browse/HIVE-27960
>             Project: Hive
>          Issue Type: Bug
>          Components: Hive
>    Affects Versions: 2.3.9
>         Environment: Aliyun emr hive 2.3.9
>            Reporter: gaoxiong
>            Assignee: gaoxiong
>            Priority: Major
>             Fix For: 2.3.9
>
>         Attachments: HIVE-27960.branch-2.patch
>
>
> When a permanent udaf used before over() function, hive will throw invalid function error.
>  
> In HIVE-12719 , it fix this issue for hive 3, but it can't work in hive 2. 
>  
> In hive 2, it should get FunctionInfo from FunctionRegistry before get WindowFunctionInfo same to hive 3. Because it will register window function to session. Then hive can get WindowFunctionInfo correctly.
>  
> ---------------------------- err detail ----------------------------
> register a permanent udaf:
> {code:java}
> create function row_number2 as 'org.apache.hadoop.hive.ql.udf.generic.GenericUDAFRowNumber'; {code}
> execute query in a new cli session:
> {code:java}
> select row_number2() over();{code}
> blew is error log:
> {code:java}
> FAILED: SemanticException Failed to breakup Windowing invocations into Groups. At least 1 group must only depend on input columns. Also check for circular dependencies.Underlying error: Invalid function row_number22023-12-06T10:17:30,348 ERROR [0b7764ce-cde3-49c5-9d32-f96d61b20773 main] ql.Driver: FAILED: SemanticException Failed to breakup Windowing invocations into Groups. At least 1 group must only depend on input columns. Also check for circular dependencies.Underlying error: Invalid function row_number2org.apache.hadoop.hive.ql.parse.SemanticException: Failed to breakup Windowing invocations into Groups. At least 1 group must only depend on input columns. Also check for circular dependencies.Underlying error: Invalid function row_number2    at org.apache.hadoop.hive.ql.parse.WindowingComponentizer.next(WindowingComponentizer.java:97)    at org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.genWindowingPlan(SemanticAnalyzer.java:13270)    at org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.genPostGroupByBodyPlan(SemanticAnalyzer.java:9685)    at org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.genBodyPlan(SemanticAnalyzer.java:9644)    at org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.genPlan(SemanticAnalyzer.java:10549)    at org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.genPlan(SemanticAnalyzer.java:10427)    at org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.genOPTree(SemanticAnalyzer.java:11125)    at org.apache.hadoop.hive.ql.parse.CalcitePlanner.genOPTree(CalcitePlanner.java:481)    at org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.analyzeInternal(SemanticAnalyzer.java:11138)    at org.apache.hadoop.hive.ql.parse.CalcitePlanner.analyzeInternal(CalcitePlanner.java:286)    at org.apache.hadoop.hive.ql.parse.BaseSemanticAnalyzer.analyze(BaseSemanticAnalyzer.java:258)    at org.apache.hadoop.hive.ql.Driver.compile(Driver.java:512)    at org.apache.hadoop.hive.ql.Driver.compileInternal(Driver.java:1317)    at org.apache.hadoop.hive.ql.Driver.runInternal(Driver.java:1457)    at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1237)    at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1227)    at org.apache.hadoop.hive.cli.CliDriver.processLocalCmd(CliDriver.java:233)    at org.apache.hadoop.hive.cli.CliDriver.processCmd(CliDriver.java:184)    at org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:403)    at org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:336)    at org.apache.hadoop.hive.cli.CliDriver.executeDriver(CliDriver.java:787)    at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:759)    at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:686)    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)    at java.lang.reflect.Method.invoke(Method.java:498)    at org.apache.hadoop.util.RunJar.run(RunJar.java:239)    at org.apache.hadoop.util.RunJar.main(RunJar.java:153) {code}
>  
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)