hive> CREATE EXTERNAL TABLE IF NOT EXISTS news ( > keyword INT, > html INT, > name STRING, > text STRING, > price STRING > ) > ROW FORMAT DELIMITED > FIELDS TERMINATED BY '\73' > LOCATION '/user' > STORED AS TEXTFILE; FAILED: ParseException line 11:0 missing EOF at 'STORED' near ''/user''
时间: 2024-02-16 18:09:27 浏览: 30
这个错误提示是因为在创建外部表的语句中,`STORED AS`语句放错位置了。`STORED AS`应该在`ROW FORMAT`语句之后,如下所示:
```
CREATE EXTERNAL TABLE IF NOT EXISTS news (
keyword INT,
html INT,
name STRING,
text STRING,
price STRING
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\73'
STORED AS TEXTFILE
LOCATION '/user';
```
修改后的语句中,`STORED AS`语句在`ROW FORMAT`语句之后,这样就可以正常创建外部表了。同时,注意`FIELDS TERMINATED BY`语句中的分隔符需要使用ASCII码表示,这里使用的是`\73`表示的是分号`;`。
相关问题
CREATE EXTERNAL TABLE IF NOT EXISTS `news` ( `keyword` INT, `html` INT, `name` STRING, `text` STRING, `price` STRING ) ROW FORMAT DELIMITED FIELDS TERMINATED BY ';' LOCATION '/path/to/external/table' STORED AS TEXTFILE;在hive中创建相同的表结构代码
好的,以下是在 Hive 中创建相同表结构的代码:
```
CREATE EXTERNAL TABLE IF NOT EXISTS news (
keyword INT,
html INT,
name STRING,
text STRING,
price STRING
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ';'
LOCATION '/path/to/external/table'
STORED AS TEXTFILE;
```
请注意,这里的代码与你提供的代码几乎相同,只是将 backtick (`)换成了单引号('),因为在 Hive 中,单引号和双引号都可以用来引用表名和列名,而 backtick 是 MySQL 特有的语法。另外,如果你将该表定义为外部表,则需要指定 `LOCATION` 参数来告诉 Hive 表数据的存储位置。
如果还有其他问题,请随时问我。
CREATE EXTERNAL TABLE IF NOT EXISTS goods ( echange STRING, symbol STRING, ymd STRING, price_open FLOAT, price_high FLOAT, } PARTITIONED BY (
这是一段未完成的Hive DDL语句,有一些语法错误。需要在右括号后补充具体的分区信息。
正确的DDL语句应该类似这样:
```
CREATE EXTERNAL TABLE IF NOT EXISTS goods (
exchange STRING,
symbol STRING,
ymd STRING,
price_open FLOAT,
price_high FLOAT
)
PARTITIONED BY (
partition_col1 TYPE,
partition_col2 TYPE,
...
)
LOCATION 's3://your-bucket/path/to/table';
```
其中,`PARTITIONED BY`用于指定分区列,`LOCATION`用于指定数据存储的位置。具体的分区列和存储位置需要根据实际情况进行设置。