hadoop - 列名 DIV 在配置单元中显示错误

标签 hadoop hive hbase

我正在尝试在配置单元中执行以下代码:

创建表 xyz (name string,div int) ;

显示错误。我们不能在配置单元中使用名称为 div 的列吗?我有一个包含 div 列的大表,执行该 hql 时出现以下错误。这就是我尝试使用上述较小的 hql 的方式,它显示了相同的错误。我正在使用配置单元 0.13。

NoViableAltException(14@[]) 在 org.apache.hadoop.hive.ql.parse.HiveParser_IdentifiersParser.identifier(HiveParser_IdentifiersParser.java:11627) 在 org.apache.hadoop.hive.ql.parse.HiveParser.identifier(HiveParser.java:40134) 在 org.apache.hadoop.hive.ql.parse.HiveParser.columnNameType(HiveParser.java:34747) 在 org.apache.hadoop.hive.ql.parse.HiveParser.columnNameTypeList(HiveParser.java:32979) 在 org.apache.hadoop.hive.ql.parse.HiveParser.createTableStatement(HiveParser.java:4544) 在 org.apache.hadoop.hive.ql.parse.HiveParser.ddlStatement(HiveParser.java:2144) 在 org.apache.hadoop.hive.ql.parse.HiveParser.execStatement(HiveParser.java:1398) 在 org.apache.hadoop.hive.ql.parse.HiveParser.statement(HiveParser.java:1036) 在 org.apache.hadoop.hive.ql.parse.ParseDriver.parse(ParseDriver.java:199) 在 org.apache.hadoop.hive.ql.parse.ParseDriver.parse(ParseDriver.java:166) 在 org.apache.hadoop.hive.ql.Driver.compile(Driver.java:408) 在 org.apache.hadoop.hive.ql.Driver.compile(Driver.java:322) 在 org.apache.hadoop.hive.ql.Driver.compileInternal(Driver.java:976) 在 org.apache.hadoop.hive.ql.Driver.runInternal(Driver.java:1041) 在 org.apache.hadoop.hive.ql.Driver.run(Driver.java:912) 在 org.apache.hadoop.hive.ql.Driver.run(Driver.java:902) 在 org.apache.hadoop.hive.cli.CliDriver.processLocalCmd(CliDriver.java:268) 在 org.apache.hadoop.hive.cli.CliDriver.processCmd(CliDriver.java:220) 在 org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:423) 在 org.apache.hadoop.hive.cli.CliDriver.executeDriver(CliDriver.java:793) 在 org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:686) 在 org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:625) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(本地方法) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method.java:606) 在 org.apache.hadoop.util.RunJar.main(RunJar.java:212) 失败:ParseException 行 2:15 无法识别列规范中 'div' 'int' ')' 附近的输入`

最佳答案

答案找到了!

create table xyz (name string, `div` int); 

这行得通!用“`”符号包围 div,然后它就可以工作了。

我想 div 将是配置单元中的关键字(尽管在任何文档中都找不到)。

谢谢, 尼图

关于hadoop - 列名 DIV 在配置单元中显示错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36897961/

相关文章:

hadoop - 如何使用 hive/pig 查找唯一连接的数量

hadoop - 哪些技术可用于将数据从社交媒体流式传输到 hadoop?

hadoop - 相同任务/不同数据的MapReduce

php - Windows机器上的Hadoop Hello world

sql - 查找配置单元中每个ID的平均小时数

hive - 如何查看创建表的日期?

python - 无法运行 python 脚本

hadoop - HBase mapReduce TableOutputFormat如何使用Flush和WAL

hadoop - 根据时间戳从 Hive 访问 HBase 表数据

amazon-web-services - hadoop流中的zgrep