hive建表语句

发布时间 2023-03-30 09:42:35作者: 码码小菜鸟

hive有三种建表语句

1,create建表

CREATE EXTERNAL TABLE dwd_database.table_name(
id BIGINT,
user_id STRING,
gmt_modified TIMESTAMP,
gmt_create TIMESTAMP,
pending_reward INT,
description STRING
)
PARTITIONED BY (
pt STRING
)
row format delimited fields terminated by '\t'
STORED AS TEXTFILE
location 'hdfs://nameservice1/user/hive/warehouse/dwd_database.db/table_name';

参数说明:

EXTERNAL:外部表(如果是内部表可以不用)

dwd_database:库名

table_name:表名

partition by :分区字段

row format delimited fields terminated by '\t':指定表存储中列的分隔符,默认是\001,这里指定的是\t分隔符,还可以指定其他的列分隔符

STORED AS TEXTFILE:数据格式,这里是text格式,也可以是其他格式如:TextFile、SequenceFile、RCFile、Avro、ORC、ParquetFile等。

location :外部表加载路径,内部表默认路径为:/user/hive/warehouse/dwd_database.db/table_name

 

2, create table ... as   select .....

例如:

create table table_name
as
select * from t_table_name where partition_name='202301';

根据查询来创建新表,并给新表命名;需要注意的是:
select * 可以给新表重新定义列名(as)
table_name表不支持分区分桶
table_name表不能是外部表
table_name表可以重新设定储存格式和分隔符
table_name表默认为文本格式


3,like创建相同结构的表

例如:

create external table like …

主要用来复制表
如果建内部表,去掉externa