Jen*_*and 9 hadoop hive mapreduce bigdata amazon-dynamodb
尝试从现有DynamoDB表创建Hive表时出现以下错误:
NoViableAltException(88@[])
at org.apache.hadoop.hive.ql.parse.HiveParser_IdentifiersParser.identifier(HiveParser_IdentifiersParser.java:9123)
at org.apache.hadoop.hive.ql.parse.HiveParser.identifier(HiveParser.java:30750)
...more stack trace...
FAILED: ParseException line 1:77 cannot recognize input near 'end' 'string' ',' in column specification
Run Code Online (Sandbox Code Playgroud)
查询看起来像这样(简化以保护无辜者):
CREATE EXTERNAL TABLE moveProjects (cid string, end string, category string)
STORED BY 'org.apache.hadoop.hive.dynamodb.DynamoDBStorageHandler'
TBLPROPERTIES ("dynamodb.table.name" = "Projects",
"dynamodb.column.mapping" = "cid:cid,end:end,category:category");
Run Code Online (Sandbox Code Playgroud)
基本上,我正在尝试创建一个包含Projects
DynamoDB表内容的Hive表,但是create语句会从Hive/Hadoop中抛出一个解析错误.
Jen*_*and 24
问题实际上不是语法错误,Hive ParseException只是由Hive中的保留关键字引起的(在本例中end
).
解决方案:在违规列名称周围使用反引号:
CREATE EXTERNAL TABLE moveProjects (cid string, `end` string, category string)
STORED BY 'org.apache.hadoop.hive.dynamodb.DynamoDBStorageHandler'
TBLPROPERTIES ("dynamodb.table.name" = "Projects",
"dynamodb.column.mapping" = "cid:cid,end:end,category:category");
Run Code Online (Sandbox Code Playgroud)
随着附加的反引号end
,查询按预期工作.
IF,HAVING,WHERE,SELECT,UNIQUEJOIN,JOIN,ON,TRANSFORM,MAP,REDUCE,TABLESAMPLE,CAST,FUNCTION,EXTENDED,CASE,WHEN,THEN,ELSE,END,DATABASE,CROSS
来源:来自Facebook Phabricator跟踪器的这个Hive票
归档时间: |
|
查看次数: |
88049 次 |
最近记录: |