4.5 创建表

4.5 创建表

1、语法

CREATE  [EXTERNAL]  TABLE  [IF  NOT  EXISTS]  表名(
列名   数据类型  [COMMENT  ‘该列注释信息’],
列名   数据类型,
列名   数据类型,
。。。。。。
)
[ROW   FORMAT   DELIMITED   FIELDS   TERMINATED   BY   ‘分隔符’]
[COLLECTION   ITEMS   TERMINATED   BY   ‘分隔符’]
[MAP   KEYS   TERMINATED   BY   ‘分隔符’]
[LINES   TERMINATEF   BY  ‘分隔符’]
[LOCATION  ‘指定HDFS上的路径’]
[COMMENT  ‘该表注释信息’]
[PARTITIONED  BY   (虚拟列名  数据类型,虚拟列名  数据类型,.....)]
[CLUSTERED  BY   (列名,列名,......]
    [SORTED  BY   (列名,列名,......)  INTO  n  BUCKETS]
[STORED   AS   TEXTFILE或者SEQUENCEFILE或者RCFILE]   
[AS  SELECT  查询语句]
[LIKE   表名]

2、参数说明
EXTERNAL:Hive默认创建的是内部表(管理表),可以通过此关键字创建外部表;当删除管理表时,HIVE中的元数据和HDFS上的数据都会被删除,而删除外部表只会删除HIVE中的元数据,不会删除HDFS上的数据
IF NOT EXISTS:如果创建一个表,而该表名已经存在则会报错,为了提高代码的健壮性,加此语句
COMMENT:可以为列或整个表添加注释信息
ROW FORMAT DELIMITED TERMINATED BY ‘分隔符’:指定列与列之间的分隔符
COLLECTION ITEMS TERMINATED BY ‘分隔符’:指定MAP、STRUCT、ARRAY中元素之间的分隔符
MAP KEYS TERMINATED BY ‘分隔符’:指定MAP中键值对(key-value)间的分隔符
LINES TERMINATED BY ‘’分隔符:指定行与行之间的分隔符
LOCATION ‘指定HDFS上的路径’:可以自定义表在HDFS上的具体位置
PARTITIONED BY (虚拟列名 数据类型,虚拟列名 数据类型,…):可以指定分区
CLUSTERED BY (列名,列名,…):可以指定分桶
SORTED BY (列名,列名,列名,…) into n buckets:指定桶的个数及桶内排序
STORED AS TEXTFILE或者SEQUENCEFILE或者RCFILE:可以指定存储类型
存储类型说明
TEXTFILE:纯文本存储类型
SEQUENCEFILE:二进制序列存储类型,如果需要压缩,可以选择此存储格式
RCFILE:列式格式存储
AS SELECT 查询语句:根据查询结果来创建表,会复制查询到的数据
LIKE 表名:根据另一个表的结构来创建此表,但不会复制该表的数据

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值