如何在hive中创建表
时间: 2024-01-27 08:13:36 浏览: 69
HIVE创建库创建表.docx
在Hive中创建表可以使用CREATE TABLE语句,具体语法如下:
```
CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS] table_name
[(col_name data_type [column_constraint_specification] [COMMENT col_comment], ...)]
[COMMENT table_comment]
[PARTITIONED BY (col_name data_type [COMMENT col_comment], ...)]
[CLUSTERED BY (col_name, col_name, ...) [SORTED BY (col_name [ASC|DESC]), ...]]
[INTO num_buckets BUCKETS]
[ROW FORMAT row_format]
[STORED AS file_format]
[LOCATION hdfs_path]
[TBLPROPERTIES (property_name=property_value, ...)]
```
其中,方括号内的内容为可选项,具体解释如下:
- TEMPORARY:表示创建的是临时表,该表在当前会话结束时会被删除。
- EXTERNAL:表示创建的是外部表,即表的数据存储在Hive之外,例如HDFS上的文件。
- IF NOT EXISTS:表示如果表已经存在,则不会重新创建。
- table_name:表示要创建的表的名称。
- col_name:表示表的列名。
- data_type:表示表的列的数据类型。
- column_constraint_specification:表示列的约束条件,例如NOT NULL、UNIQUE等。
- COMMENT:表示对表或列的注释。
- PARTITIONED BY:表示按照哪些列进行分区。
- CLUSTERED BY:表示按照哪些列进行聚集。
- SORTED BY:表示按照哪些列进行排序。
- INTO num_buckets BUCKETS:表示将表分成多少个桶。
- row_format:表示行的格式,例如DELIMITED、SERDE等。
- file_format:表示文件的格式,例如TEXTFILE、SEQUENCEFILE等。
- hdfs_path:表示表的数据存储路径。
- TBLPROPERTIES:表示表的属性,例如表的压缩方式、表的存储格式等。
例如,创建一个名为test的表,包含id和name两列,数据类型分别为int和string,存储在HDFS的/user/hive/warehouse/test目录下,可以使用以下语句:
```
CREATE TABLE IF NOT EXISTS test (
id INT,
name STRING
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE
LOCATION '/user/hive/warehouse/test';
```
阅读全文