Hi, I have a table with some array fields, when preview them using "select limit" at beeline, I got following errors, it seems the typeinfo string is changed from array<string> to struct<> I am using hive-0.13.1
0: jdbc:hive2://lg-hadoop-hive01.bj:32203/> show create table xxx; +----------------------------------------------------------------------------------------+--+ | createtab_stmt | +----------------------------------------------------------------------------------------+--+ | CREATE EXTERNAL TABLE `xxx`( | | `commonuserid` struct<id:string,idType:string>, | | `lastactivetime` bigint, | | `searchwords` array<string>, | | `calls` map<string,array<bigint>>, | | `hasusedrecharge` int, | | `hasusedexpress` int, | | `hasusedviolateregulation` int, | | `hasusedlicenseplatelottery` int, | | `interestedshops` array<string>) | | ROW FORMAT DELIMITED | | STORED AS INPUTFORMAT | | 'org.apache.hadoop.mapred.SequenceFileInputFormat' | | OUTPUTFORMAT | | 'org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat' | 0: jdbc:hive2://lg-hadoop-hive01.bj:32203/> select searchwords from yellowpage.yp_user_actions limit 1; Error: Error while compiling statement: FAILED: SemanticException java.lang.IllegalArgumentException: Error: name expected at the position 7 of 'struct<>' but '>' is found. (state=42000,code=40000) Full stack: org.apache.hadoop.hive.ql.parse.SemanticException: java.lang.IllegalArgumentException: Error: name expected at the position 7 of 'struct<>' but '>' is found. at org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.genConversionSelectOperator(SemanticAnalyzer.java:5949) at org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.genFileSinkPlan(SemanticAnalyzer.java:5845) at org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.genPostGroupByBodyPlan(SemanticAnalyzer.java:8235) at org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.genBodyPlan(SemanticAnalyzer.java:8126) at org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.genPlan(SemanticAnalyzer.java:8956) at org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.analyzeInternal(SemanticAnalyzer.java:9209) at org.apache.hadoop.hive.ql.parse.BaseSemanticAnalyzer.analyze(BaseSemanticAnalyzer.java:206) at org.apache.hadoop.hive.ql.Driver.compile(Driver.java:435) at org.apache.hadoop.hive.ql.Driver.compile(Driver.java:333) at org.apache.hadoop.hive.ql.Driver.compileInternal(Driver.java:989) at org.apache.hadoop.hive.ql.Driver.compileAndRespond(Driver.java:982) at org.apache.hive.service.cli.operation.SQLOperation.prepare(SQLOperation.java:123) at org.apache.hive.service.cli.operation.SQLOperation.run(SQLOperation.java:197) at org.apache.hive.service.cli.session.HiveSessionImpl.runOperationWithLogCapture(HiveSessionImpl.java:734) at org.apache.hive.service.cli.session.HiveSessionImpl.executeStatementInternal(HiveSessionImpl.java:376) at org.apache.hive.service.cli.session.HiveSessionImpl.executeStatementAsync(HiveSessionImpl.java:362) at org.apache.hive.service.cli.CLIService.executeStatementAsync(CLIService.java:240) at org.apache.hive.service.cli.thrift.ThriftCLIService.ExecuteStatement(ThriftCLIService.java:378) at org.apache.hive.service.cli.thrift.TCLIService$Processor$ExecuteStatement.getResult(TCLIService.java:1373) at org.apache.hive.service.cli.thrift.TCLIService$Processor$ExecuteStatement.getResult(TCLIService.java:1358) at org.apache.thrift.ProcessFunction.process(ProcessFunction.java:39) at org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:39) at org.apache.hadoop.hive.thrift.HadoopThriftAuthBridge20S$Server$TUGIAssumingProcessor.process(HadoopThriftAuthBridge20S.java:677) at org.apache.thrift.server.TThreadPoolServer$WorkerProcess.run(TThreadPoolServer.java:244) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:662) Caused by: java.lang.IllegalArgumentException: Error: name expected at the position 7 of 'struct<>' but '>' is found. at org.apache.hadoop.hive.serde2.typeinfo.TypeInfoUtils$TypeInfoParser.expect(TypeInfoUtils.java:354) at org.apache.hadoop.hive.serde2.typeinfo.TypeInfoUtils$TypeInfoParser.expect(TypeInfoUtils.java:331) at org.apache.hadoop.hive.serde2.typeinfo.TypeInfoUtils$TypeInfoParser.parseType(TypeInfoUtils.java:478) at org.apache.hadoop.hive.serde2.typeinfo.TypeInfoUtils$TypeInfoParser.parseTypeInfos(TypeInfoUtils.java:305) at org.apache.hadoop.hive.serde2.typeinfo.TypeInfoUtils.getTypeInfosFromTypeString(TypeInfoUtils.java:754) at org.apache.hadoop.hive.serde2.lazy.LazyUtils.extractColumnInfo(LazyUtils.java:372) at org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe.initSerdeParams(LazySimpleSerDe.java:288) at org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe.initialize(LazySimpleSerDe.java:187) at org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.genConversionSelectOperator(SemanticAnalyzer.java:5946) ... 26 more Thanks, Binglin