hive创建分区表 指定分隔符_HIVE 对于分区表的操作
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)
指定分區(qū)(此列并沒真正存儲(chǔ)列,也就是不存于你的數(shù)據(jù)中。但是如果你的數(shù)據(jù)從Oracle按年份導(dǎo)出,按照年份分區(qū),把每一年數(shù)據(jù)放到age對應(yīng)的目錄下)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ‘,’
字段分隔符
LINES TERMINATED BY ‘\n’ 行分隔符
STORED AS TEXTFILE; 作為文本存儲(chǔ)
Hive加載數(shù)據(jù)到表中
加載數(shù)據(jù)
LOAD DATA INPATH
‘/data/’ OVERWRITE INTO TABLE data_zh;
#加載某個(gè)目錄下所有數(shù)據(jù),存在分區(qū)數(shù)據(jù)不能這樣加載
分區(qū)加載數(shù)據(jù)
創(chuàng)建分區(qū)
ALTER TABLE data_zhp ADD PARTITION(AGE= 1998)
加載數(shù)據(jù)
LOAD DATA INPATH ‘/data/1998.txt’ INTO TABLE data_zhp
PARTITION(YEAR=1998);
指定分區(qū)目錄
LOCATION ‘
/hiveuser/hive/warehouse/data_zh.db/data_zh/2012.txt’;(指定分區(qū)所在位置)
加載數(shù)據(jù)到指定分區(qū),分區(qū)表加載方法
下面為將現(xiàn)有表,修改為分區(qū)表。注意創(chuàng)建分區(qū)的時(shí)候未指定分區(qū)表,不能創(chuàng)建分區(qū)。需要新建表哥,用動(dòng)態(tài)分區(qū)導(dǎo)入數(shù)據(jù),動(dòng)態(tài)分區(qū)數(shù)量有限。參考Programming
Hive記得最大上限應(yīng)該是10000
Hive修改現(xiàn)有表添加分區(qū)
添加分區(qū)
ALTER TABLE data_zh ADD IF NOT EXISTS
PARTITION (year = 1998) LOCATION
‘/hiveuser/hive/warehouse/data_zh.db/data_zh/1998.txt’
刪除分區(qū)
ALTER TABLE data_zhp DROP IF EXISTS PARTITION(year =1998);
修改現(xiàn)有表添加分區(qū)
創(chuàng)建分區(qū)表
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;
動(dòng)態(tài)分區(qū)指令
set
hive.exec.dynamic.partition=true;
set hive.exec.dynamic.partition.mode=nonstrict;
#set hive.enforce.bucketing = true;
未分區(qū)表數(shù)據(jù)導(dǎo)入分區(qū)表
insert overwrite table data_zhp partition (YEAR,MONTH) select *
from data_zh;
總結(jié)
以上是生活随笔為你收集整理的hive创建分区表 指定分隔符_HIVE 对于分区表的操作的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 小程序读写文件更流畅:微信启用全新FD文
- 下一篇: 支付宝转不了账怎么回事