Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hadoop 无法创建配置单元表_Hadoop_Hive_Hiveql - Fatal编程技术网

Hadoop 无法创建配置单元表

Hadoop 无法创建配置单元表,hadoop,hive,hiveql,Hadoop,Hive,Hiveql,我无法创建配置单元表。 下面是代码 CREATE TABLE NYSE(exchange STRING, stock_symbol STRING, stock_date DATE, stock_price_open FLOAT, stock_price_high FLOAT, stock_price_low FLOAT, stock_price_close FLOAT, stock_volume INT, stock_price_avg_close FLOAT) ROW FORMAT

我无法创建配置单元表。 下面是代码

CREATE TABLE NYSE(exchange STRING, stock_symbol STRING, stock_date DATE,
stock_price_open FLOAT, stock_price_high FLOAT, stock_price_low FLOAT,     
stock_price_close FLOAT, stock_volume INT, stock_price_avg_close FLOAT)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','; 
这将返回以下错误消息:

NoViableAltException(332@[2189:1: columnNameTypeOrPKOrFK : ( ( foreignKeyWithName ) | ( primaryKeyWithName ) | ( primaryKeyWithoutName ) | ( foreignKeyWithoutName ) | ( columnNameType ) );])
at org.antlr.runtime.DFA.noViableAlt(DFA.java:158)
at org.antlr.runtime.DFA.predict(DFA.java:116)
at org.apache.hadoop.hive.ql.parse.HiveParser.columnNameTypeOrPKOrFK(HiveParser.java:42212)
at org.apache.hadoop.hive.ql.parse.HiveParser.columnNameTypeOrPKOrFKList(HiveParser.java:37938)
at org.apache.hadoop.hive.ql.parse.HiveParser.createTableStatement(HiveParser.java:5259)
at org.apache.hadoop.hive.ql.parse.HiveParser.ddlStatement(HiveParser.java:2763)
at org.apache.hadoop.hive.ql.parse.HiveParser.execStatement(HiveParser.java:1756)
at org.apache.hadoop.hive.ql.parse.HiveParser.statement(HiveParser.java:1178)
at org.apache.hadoop.hive.ql.parse.ParseDriver.parse(ParseDriver.java:204)
at org.apache.hadoop.hive.ql.parse.ParseDriver.parse(ParseDriver.java:166)
at org.apache.hadoop.hive.ql.Driver.compile(Driver.java:404)
at org.apache.hadoop.hive.ql.Driver.compile(Driver.java:329)
at org.apache.hadoop.hive.ql.Driver.compileInternal(Driver.java:1158)
at org.apache.hadoop.hive.ql.Driver.runInternal(Driver.java:1253)
at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1084)
at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1072)
at org.apache.hadoop.hive.cli.CliDriver.processLocalCmd(CliDriver.java:232)
at org.apache.hadoop.hive.cli.CliDriver.processCmd(CliDriver.java:183)
at org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:399)
at org.apache.hadoop.hive.cli.CliDriver.executeDriver(CliDriver.java:776)
at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:714)
at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:641)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.hadoop.util.RunJar.run(RunJar.java:221)
at org.apache.hadoop.util.RunJar.main(RunJar.java:136)
FAILED: ParseException line 1:18 cannot recognize input near 'exchange' 'STRING' ,' in column name or primary key or foreign key
我正在使用Hive2.1.0和Hadoop2.7.3

请帮助我。

您不能在列名定义中使用“exchange”

尝试像exchange_1一样给出,或者使用`对您的第一个列名进行转义

尝试以下步骤:

USE your_DB_Name;

DROP TABLE IF EXISTS NYSE PURGE;

CREATE TABLE NYSE (`exchange` STRING, stock_symbol STRING, stock_date DATE, stock_price_open FLOAT, stock_price_high FLOAT, stock_price_low FLOAT, stock_price_close FLOAT, stock_volume INT, stock_price_avg_close FLOAT) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' ;
在列名定义中不能使用“exchange”

尝试像exchange_1一样给出,或者使用`对您的第一个列名进行转义

尝试以下步骤:

USE your_DB_Name;

DROP TABLE IF EXISTS NYSE PURGE;

CREATE TABLE NYSE (`exchange` STRING, stock_symbol STRING, stock_date DATE, stock_price_open FLOAT, stock_price_high FLOAT, stock_price_low FLOAT, stock_price_close FLOAT, stock_volume INT, stock_price_avg_close FLOAT) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' ;
是配置单元中的保留关键字

可以使用反勾(``)符号对其进行转义

这应该起作用:

CREATE TABLE NYSE(
`exchange` STRING
,stock_symbol STRING
,stock_date DATE
,stock_price_open FLOAT
,stock_price_high FLOAT
,stock_price_low FLOAT
,stock_price_close FLOAT
,stock_volume INT
,stock_price_avg_close FLOAT)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','; 
是配置单元中的保留关键字

可以使用反勾(``)符号对其进行转义

这应该起作用:

CREATE TABLE NYSE(
`exchange` STRING
,stock_symbol STRING
,stock_date DATE
,stock_price_open FLOAT
,stock_price_high FLOAT
,stock_price_low FLOAT
,stock_price_close FLOAT
,stock_volume INT
,stock_price_avg_close FLOAT)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','; 

exchange是配置单元中的关键字,因此无法使用。而不是使用exchangee或其他任何东西。 试试这个

创建表nyse(交换对象字符串、股票符号字符串、股票日期 字符串,股票价格开双,股票价格高双,股票价格低 双倍,股价双倍,成交量双倍 double,stock_price_adj_close double)行格式分隔字段 以“,”终止


exchange是配置单元中的关键字,因此无法使用。而不是使用exchangee或其他任何东西。 试试这个

创建表nyse(交换对象字符串、股票符号字符串、股票日期 字符串,股票价格开双,股票价格高双,股票价格低 双倍,股价双倍,成交量双倍 double,stock_price_adj_close double)行格式分隔字段 以“,”终止