hive创建分区表 指定分隔符_HIVE 对于分区表的操作

本文介绍了如何在Hive中创建外部分区表,包括指定字段分隔符、行分隔符以及数据存储方式。还详细阐述了加载数据到分区表的过程,包括静态分区和动态分区的使用,以及如何修改现有表添加、删除分区。此外,提到了Hive的动态分区配置及其限制。
摘要由CSDN通过智能技术生成

CREATE EXTERNAL

TABLE IF NOT EXISTS data_zh(

ROWKEY STRING,

STATION INT,

YEAR INT,

MONTH INT,

DAY INT,

HOUR INT,

MINUTE INT,

)

PARTITIONED BY (AGE INT)

指定分区(此列并没真正存储列,也就是不存于你的数据中。但是如果你的数据从Oracle按年份导出,按照年份分区,把每一年数据放到age对应的目录下)

ROW FORMAT DELIMITED

FIELDS TERMINATED BY ‘,’

字段分隔符

LINES TERMINATED BY ‘\n’ 行分隔符

STORED AS TEXTFILE; 作为文本存储

Hive加载数据到表中

加载数据

LOAD DATA INPATH

‘/data/’ OVERWRITE INTO TABLE data_zh;

#加载某个目录下所有数据,存在分区数据不能这样加载

分区加载数据

创建分区

ALTER TABLE data_zhp ADD PARTITION(AGE= 1998)

加载数据

LOAD DATA INPATH ‘/data/1998.txt’ INTO TABLE data_zhp

PARTITION(YEAR=1998);

指定分区目录

LOCATION ‘

/hiveuser/hive/warehouse/data_zh.db/data_zh/2012.txt’;(指定分区所在位置)

加载数据到指定分区,分区表加载方法

下面为将现有表,修改为分区表。注意创建分区的时候未指定分区表,不能创建分区。需要新建表哥,用动态分区导入数据,动态分区数量有限。参考Programming

Hive记得最大上限应该是10000

Hive修改现有表添加分区

添加分区

ALTER TABLE data_zh ADD IF NOT EXISTS

PARTITION (year = 1998) LOCATION

‘/hiveuser/hive/warehouse/data_zh.db/data_zh/1998.txt’

删除分区

ALTER TABLE data_zhp DROP IF EXISTS PARTITION(year =1998);

修改现有表添加分区

创建分区表

CREATE EXTERNAL TABLE IF NOT EXISTS data_zhp(

ROWKEY STRING,

STATION INT,

MONTH INT,

DAY INT,

HOUR INT,

MINUTE INT,

)

PARTITIONED BY (YEAR INT)

ROW FORMAT DELIMITED

FIELDS TERMINATED BY ‘,’

LINES TERMINATED BY ‘\n’

STORED AS TEXTFILE;

动态分区指令

set

hive.exec.dynamic.partition=true;

set hive.exec.dynamic.partition.mode=nonstrict;

#set hive.enforce.bucketing = true;

未分区表数据导入分区表

insert overwrite table data_zhp partition (YEAR,MONTH) select *

from data_zh;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值