一个查询中的两个函数在Hive中给出错误

时间:2018-06-21 06:12:45

标签: hive


我有一个简单的查询:

select 
substr(mos_inbound,1,6),
replace(calling_party_number_received,'F','') calling_party_number_received
from cdr;
出现此错误的

[Cloudera][HiveJDBCDriver](500051) ERROR processing query/statement. Error Code: 40000, SQL state: TStatus(statusCode:ERROR_STATUS, infoMessages:[*org.apache.hive.service.cli.HiveSQLException:Error while compiling statement: FAILED: SemanticException Line 0:-1 Invalid function 'replace':28:27, org.apache.hive.service.cli.operation.Operation:toSQLException:Operation.java:315, org.apache.hive.service.cli.operation.SQLOperation:prepare:SQLOperation.java:112, org.apache.hive.service.cli.operation.SQLOperation:runInternal:SQLOperation.java:181, org.apache.hive.service.cli.operation.Operation:run:Operation.java:257, org.apache.hive.service.cli.session.HiveSessionImpl:executeStatementInternal:HiveSessionImpl.java:419, org.apache.hive.service.cli.session.HiveSessionImpl:executeStatementAsync:HiveSessionImpl.java:406, sun.reflect.GeneratedMethodAccessor36:invoke::-1, sun.reflect.DelegatingMethodAccessorImpl:invoke:DelegatingMethodAccessorImpl.java:43, java.lang.reflect.Method:invoke:Method.java:498, org.apache.hive.service.cli.session.HiveSessionProxy:invoke:HiveSessionProxy.java:78, org.apache.hive.service.cli.session.HiveSessionProxy:access$000:HiveSessionProxy.java:36, org.apache.hive.service.cli.session.HiveSessionProxy$1:run:HiveSessionProxy.java:63, java.security.AccessController:doPrivileged:AccessController.java:-2, javax.security.auth.Subject:doAs:Subject.java:422, org.apache.hadoop.security.UserGroupInformation:doAs:UserGroupInformation.java:1709, org.apache.hive.service.cli.session.HiveSessionProxy:invoke:HiveSessionProxy.java:59, com.sun.proxy.$Proxy36:executeStatementAsync::-1, org.apache.hive.service.cli.CLIService:executeStatementAsync:CLIService.java:276, org.apache.hive.service.cli.thrift.ThriftCLIService:ExecuteStatement:ThriftCLIService.java:486, org.apache.hive.service.cli.thrift.TCLIService$Processor$ExecuteStatement:getResult:TCLIService.java:1317, org.apache.hive.service.cli.thrift.TCLIService$Processor$ExecuteStatement:getResult:TCLIService.java:1302, org.apache.thrift.ProcessFunction:process:ProcessFunction.java:39, org.apache.thrift.TBaseProcessor:process:TBaseProcessor.java:39, org.apache.hadoop.hive.thrift.HadoopThriftAuthBridge$Server$TUGIAssumingProcessor:process:HadoopThriftAuthBridge.java:562, org.apache.thrift.server.TThreadPoolServer$WorkerProcess:run:TThreadPoolServer.java:285, java.util.concurrent.ThreadPoolExecutor:runWorker:ThreadPoolExecutor.java:1142, java.util.concurrent.ThreadPoolExecutor$Worker:run:ThreadPoolExecutor.java:617, java.lang.Thread:run:Thread.java:745, *org.apache.hadoop.hive.ql.parse.SemanticException:Line 0:-1 Invalid function 'replace':53:26, org.apache.hadoop.hive.ql.parse.TypeCheckProcFactory$DefaultExprProcessor:getXpathOrFuncExprNodeDesc:TypeCheckProcFactory.java:935, org.apache.hadoop.hive.ql.parse.TypeCheckProcFactory$DefaultExprProcessor:process:TypeCheckProcFactory.java:1316, org.apache.hadoop.hive.ql.lib.DefaultRuleDispatcher:dispatch:DefaultRuleDispatcher.java:90, org.apache.hadoop.hive.ql.lib.DefaultGraphWalker:dispatchAndReturn:DefaultGraphWalker.java:95, org.apache.hadoop.hive.ql.lib.DefaultGraphWalker:dispatch:DefaultGraphWalker.java:79, org.apache.hadoop.hive.ql.lib.DefaultGraphWalker:walk:DefaultGraphWalker.java:133, org.apache.hadoop.hive.ql.lib.DefaultGraphWalker:startWalking:DefaultGraphWalker.java:110, org.apache.hadoop.hive.ql.parse.TypeCheckProcFactory:genExprNode:TypeCheckProcFactory.java:213, org.apache.hadoop.hive.ql.parse.TypeCheckProcFactory:genExprNode:TypeCheckProcFactory.java:157, org.apache.hadoop.hive.ql.parse.SemanticAnalyzer:genAllExprNodeDesc:SemanticAnalyzer.java:10529, org.apache.hadoop.hive.ql.parse.SemanticAnalyzer:genExprNodeDesc:SemanticAnalyzer.java:10485, org.apache.hadoop.hive.ql.parse.SemanticAnalyzer:genSelectPlan:SemanticAnalyzer.java:3822, org.apache.hadoop.hive.ql.parse.SemanticAnalyzer:genSelectPlan:SemanticAnalyzer.java:3601, org.apache.hadoop.hive.ql.parse.SemanticAnalyzer:genPostGroupByBodyPlan:SemanticAnalyzer.java:8965, org.apache.hadoop.hive.ql.parse.SemanticAnalyzer:genBodyPlan:SemanticAnalyzer.java:8920, org.apache.hadoop.hive.ql.parse.SemanticAnalyzer:genPlan:SemanticAnalyzer.java:9765, org.apache.hadoop.hive.ql.parse.SemanticAnalyzer:genPlan:SemanticAnalyzer.java:9658, org.apache.hadoop.hive.ql.parse.SemanticAnalyzer:genOPTree:SemanticAnalyzer.java:10131, org.apache.hadoop.hive.ql.parse.CalcitePlanner:genOPTree:CalcitePlanner.java:329, org.apache.hadoop.hive.ql.parse.SemanticAnalyzer:analyzeInternal:SemanticAnalyzer.java:10142, org.apache.hadoop.hive.ql.parse.CalcitePlanner:analyzeInternal:CalcitePlanner.java:211, org.apache.hadoop.hive.ql.parse.BaseSemanticAnalyzer:analyze:BaseSemanticAnalyzer.java:227, org.apache.hadoop.hive.ql.Driver:compile:Driver.java:459, org.apache.hadoop.hive.ql.Driver:compile:Driver.java:316, org.apache.hadoop.hive.ql.Driver:compileInternal:Driver.java:1189, org.apache.hadoop.hive.ql.Driver:compileAndRespond:Driver.java:1183, org.apache.hive.service.cli.operation.SQLOperation:prepare:SQLOperation.java:110], sqlState:42000, errorCode:40000, errorMessage:Error while compiling statement: FAILED: SemanticException Line 0:-1 Invalid function 'replace'), Query: select 
substr(mos_inbound,1,6),
replace(calling_party_number_received,'F','') calling_party_number_received
from cdr.

最重要的错误:

FAILED: SemanticException Line 0:-1 Invalid function 'replace'), Query: select 
    substr(mos_inbound,1,6),
    replace(calling_party_number_received,'F','') calling_party_number_received
    from cdr.

我不明白为什么,原因是当我分别查询相同的函数时,它会起作用:

select 
--substr(mos_inbound,1,6),
replace(calling_party_number_received,'F','') calling_party_number_received
from cdr;

INT17867310AAA
INT49241572AAA
INT18053548AAA
INT17146971AAA
INT18169158AAA


select 
substr(mos_inbound,1,6)
--replace(calling_party_number_received,'F','') calling_party_number_received
from cdr;

00.00|
04.30|
00.00|

配置版本;

> hive --version
WARNING: Use "yarn jar" to launch YARN applications.
Hive 1.2.1000.2.4.2.0-258
Subversion git://c66-slave-38a0b1a6-7/grid/0/jenkins/workspace/HDP-build-centos6/bigtop/build/hive/rpm/BUILD/hive-1.2.1000.2.4.2.0 -r 240760457150036e13035cbb82bcda0c65362f3a
Compiled by jenkins on Mon Apr 25 06:47:41 UTC 2016
From source with checksum 195fc2d28ec575146e342c1bff540639

有什么问题? 没问题,当我在查询中使用许多replace函数时……

致谢
帕维尔

0 个答案:

没有答案