Hive Create/Drop/Bucketed Table

来源:互联网 发布:unity3d脚本教程基础 编辑:程序博客网 时间:2024/05/19 04:27

Create Table 

hive表的创建有两种方式:

方式一:

CREATE [TEMPORARY] [EXTERNAL]TABLE [IF NOT EXISTS] [db_name.]table_name
  [(col_name data_type [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_bucketsBUCKETS]
  [SKEWED BY (col_name, col_name, ...)
     ON ((col_value, col_value, ...), (col_value, col_value, ...), ...)
     [STORED AS DIRECTORIES]
  [
   [ROW FORMAT row_format] 
   [STORED AS file_format]
     | STORED BY 'storage.handler.class.name' 

   [WITH SERDEPROPERTIES (...)]  
  ]
  [LOCATION hdfs_path]
  [TBLPROPERTIES (property_name=property_value, ...)]
  [AS select_statement];

  • CREATE TABLE 用所给的表名创建一张表。如果表名已存在则抛出异常,如果加上 [IF NOT EXISTS]关键字的跳过异常。
  • 表名、列名对大小写不敏感,但是SerDe 和属性名对大小写敏感。
  • 为了执行表所在数据库,可以在CREATE TABLE前加上USE database_name语句或者在创建表时使用[db_name.]table_name标明数据库名称,如果没有指定数据库,所建表将放入默认数据库DEFAULT中。
PARTITIONED BY:用来创建分区表。一个表可以有一个或者多个分区,每一个不同的组合分区值指向一个单独的目录。而且列和分区都可以作为CLUSTERED BY和SORT BY的列。

0 0