Hive分割槽 分桶

2021-10-02 23:31:05 字數 2486 閱讀 6430

​	create

table t_user_partition(id int

, name string) partitioned by

(country string)

row format delimited fields

terminated

by","

;

load

data

local inpath '/root/hivedata/china.txt'

into

table t_user_partition partition

(country =

'china'

);

load data local inpath 『/root/hivedata/china.txt』 into table t_user_partition partition(country =『china』);

load data local inpath 『/root/hivedata/china2.txt』 into table t_user_partition partition(country =『china』);

load data local inpath 『/root/hivedata/usa.txt』 into table t_user_partition partition(country =『usa』);

select

*from t_user_partition where country=

'usa'

;

create

table t_user_partition2(id int

, name string) partitioned by

(name string)

row format delimited fields

terminated

by","

;

語法錯誤

hive 中多分割槽

load

data

local inpath '/root/hivedata/china.txt'

into

table t_user_partition_duo partition

(country =

'china'

,province=

'beijing'

);

select * from t_user_partition_duo where country=「china」;

select

*from t_user_partition_duo where country=

"china"

and province=

"shanghai"

;

-

clustered

by(col_name)

into xx buckets

解釋:根據指定的字段把資料檔案分成幾個部分

根據誰分---->clustered by (col_name)

分成幾個部分—> xx buckets

如何分—>預設的分桶規則。

hashfunc(col_name),

如果col_name是int型別,hashfunc(col_name)= col_name % xx buckets 取模

如果是其他型別string ,hashfunc(col_name)=對col_name取雜湊值 % xx buckets 取模

set hive.enforce.bucketing = true;

insert overwrite table stu_buck select

*from student cluster by

(sno)

;

首先建立student
create table student (sno int,sname string,*** string,sage int,sdept string)

row format delimited

fields terminated by 『,』;

匯入student 資料

hadoop fs -put students.txt /user/hive/warehouse/itcast.db/student

- 最終匯入分桶表資料
insert overwrite table stu_buck select * from student cluster by(sno);

Hive分割槽 分桶

2 靜態分割槽 二 hive分桶 1.分割槽列的值將表劃分為乙個個的資料夾 2.查詢時語法使用 分割槽 列和常規列類似 3.查詢時hive會只從指定分割槽查詢資料,提高查詢效率 建立單級分割槽表 create table ifnot exists employee partition name st...

Hive 分區分桶操作

在大資料中,最常用的一種思想就是分治,我們可以把大的檔案切割劃分成乙個個的小的檔案,這樣每次操作乙個小的檔案就會很容易了,同樣的道理,在hive當中也是支援這種思想的,就是我們可以把大的資料,按照每天,或者每小時進行切分成乙個個的小的檔案,這樣去操作小的檔案就會容易得多了。企業常見的分割槽規則 按天...

Hive分區分桶基本操作

重置hive 登入mysql root m mysql uroot p1 mysql drop database hive create database hive 修改資料庫編碼 alter database grant allon hive.to hive identified by 1 gra...