不匹配的输入 'org' 期望在表文件格式规范中靠近 'BY' 的 StringLiteral

Posted

技术标签:

【中文标题】不匹配的输入 \'org\' 期望在表文件格式规范中靠近 \'BY\' 的 StringLiteral【英文标题】:mismatched input 'org' expecting StringLiteral near 'BY' in table file format specification不匹配的输入 'org' 期望在表文件格式规范中靠近 'BY' 的 StringLiteral 【发布时间】:2016-10-24 16:05:19 【问题描述】:

我正在尝试从 Dynamo 表加载配置单元表。但是我遇到了一个我无法解决的错误。 PFB代码

CREATE EXTERNAL TABLE CL_AL (COL1 string, 
                              COL2 string, 
                               COL3 string ,
                              COL4 string , 
                              COL5 string, 
                              COL6 string , 
                              COL7 string , 
                              COL8 string , 
                              COL9 string, 
                              COL10 string , 
                              COL11 string, 
                              COL12 string)
STORED BY “org.apache.hadoop.hive.dynamodb.DynamoDBStorageHandler”
TBLPROPERTIES (“dynamodb.table.name” =  “CL_AL”, 
“dynamodb.column.mapping” = “COL1: COL1, COL2: COL2, COL3:COL3 , COL4:COL4, 
COL5: COL5, COL6: COL6,COL7: COL7 , COL8: COL8, COL9: COL9 , COL10:  COL10 , COL11: COL11 , COL12: COL12”);

当我通过终端运行此代码时,我收到以下错误 “不匹配的输入 'org' 期望在表文件格式规范中靠近 'BY' 的 StringLiteral”。

正如其他帖子中提到的,我尝试用 '' 和 " " 替换引号。但是问题仍然存在。我的表中没有关键字作为列名。有人可以帮我解决这个问题

【问题讨论】:

你试过了吗?由 'org.apache.hadoop.hive.dynamodb.DynamoDBStorageHandler' 存储,使用单引号。 【参考方案1】:

解决了这个问题。问题出在 TextEdit (Mac Notepad) 上。在 TextEdit 中,单引号 (') 被视为 (') 。因此,蜂巢无法识别单引号。我将整个代码复制到 Atom 中,然后将代码从 Atom 复制到 hive 终端。代码运行没有任何问题。

【讨论】:

以上是关于不匹配的输入 'org' 期望在表文件格式规范中靠近 'BY' 的 StringLiteral的主要内容,如果未能解决你的问题,请参考以下文章

期望输入“字符串”不匹配:列规范中的“名称”附近

为啥我的文件内容/用户输入不匹配? (缺少chomp规范)[重复]

不匹配的输入“来自”期望 <EOF>

ValueError:时间数据“0”与格式“%d/%m/%Y”不匹配

Hive 9Hive 在表中添加正则匹配

excel文件扩展名与文件格式不匹配怎么解决