无法在配置单元中创建表

时间:2015-05-28 10:57:26

标签: hive

我在hive中创建表格,如:

CREATE TABLE SEQUENCE_TABLE(
  SEQUENCE_NAME VARCHAR2(225) NOT NULL,
  NEXT_VAL NUMBER NOT NULL
);

但是,结果有解析异常。无法读取Varchar2(225)NOT NULL。 任何人都可以指导我如何创建上面给出的表以及为其提供路径的任何其他过程。

3 个答案:

答案 0 :(得分:1)

hive中没有VARCHAR,字段宽度或NOT NULL子句。

CREATE TABLE SEQUENCE_TABLE( SEQUENCE_TABLE string, NEXT_VAL bigint);

请阅读此内容以了解CREATE TABLE语法: https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL#LanguageManualDDL-CreateTable

无论如何,Hive是“SQL Like”,但它不是“SQL”。我不会将它用于序列表这样的事情,因为你不支持事务,锁定,密钥和Oracle熟悉的所有东西(尽管我认为在新版本中有简单的事务支持,更新,删除等)。 我会考虑使用普通的OLTP数据库来实现你想要实现的目标

答案 1 :(得分:0)

只有你在这里有选择:

CREATE TABLE SEQUENCE_TABLE(SEQUENCE_NAME String,NEXT_VAL bigint) row format delimited fields terminated by ',' stored as textfile;

PS:再次依赖于要在hive中加载的数据的类型

答案 2 :(得分:0)

使用以下语法...

CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.] table_name

[(col_name data_type [COMMENT col_comment], ...)]
[COMMENT table_comment]
[ROW FORMAT row_format]
[STORED AS file_format]

hive创建表的示例

CREATE TABLE IF NOT EXISTS employee ( eid int, name String,
salary String, destination String)
COMMENT ‘Employee details’
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ‘\t’
LINES TERMINATED BY ‘\n’
STORED AS TEXTFILE;