一、前段時間因為導表需求(從一張表中查詢出資料,按日期分割槽overwrite 到指定分割槽表中),在hive裡面研究了一下自動分割槽。
步驟:1、建好所需分割槽表
2、設定分割槽引數?
1
2
3
4
set
hive.
exec
.
dynamic
.partition=
true
;(可通過這個語句檢視:
set
hive.
exec
.
dynamic
.partition;)
set
hive.
exec
.
dynamic
.partition.mode=nonstrict;
set
hive.
exec
.
max
.
dynamic
.partitions=100000;(如果自動分割槽數大於這個引數,將會報錯)
set
hive.
exec
.
max
.
dynamic
.partitions.pernode=100000;
3、書寫**(特別注意:日期字段一定要放在末尾),例如: ?
12
3
4
5
6
7
insert
overwrite
table
dw_stage.ds_info_msg partition(cal_dt)
select
id
,...
,pv
,0 uv
,cal_dt
from
dw_stage.tiny_info_msg
二、如果要在partition欄位用函式處理也可通過通過這種方式實現;例如:?
1
2
3
4
5
6
7
8
set
hive.
exec
.
dynamic
.partition=
true
;
set
hive.
exec
.
dynamic
.partition.mode=nostrick;
insert
overwrite
table
dw_stage.ds_info_msg partition(cal_dt)
select
id
,...
,pv
,date_sub(
'2014-03-23'
,7) cal_dt
from
dw_stage.tiny_info_msg07;
mapreduce設定分割槽partition
在執行mr程式時我們可能想要將不同的資料放到不同的檔案中。比如說想要將相同省份的資訊放到乙個檔案中,不同省份的資訊放在不同的檔案中。這個時候如果有多個reduce的話就可以將相同的省份放到同乙個reduce中,這樣就可以將相同的省份放到同乙個檔案中。partition是在map階段完成後執行的。將分...
HIVE動態分割槽
一 前段時間因為導表需求 從一張表中查詢出資料,按日期分割槽overwrite 到指定分割槽表中 在hive裡面研究了一下自動分割槽。步驟 1 建好所需分割槽表 2 設定分割槽引數?1 2 3 4 sethive.exec.dynamic.partition true 可通過這個語句檢視 sethi...
Hive動態分割槽
動態分割槽指不需要為不同的分割槽新增不同的插入語句,分割槽不確定,需要從資料中獲取。相關引數設定 set hive.exec dynamic partition true 使用動態分割槽 可通過這個語句檢視 set hive.exec dynamic partition set hive.exec ...