1. 程式人生 > >hive計劃(二)分割槽

hive計劃(二)分割槽

partition 相當於索引,避免全表掃描

使用外部表不會清除HDFS檔案系統的資料

#使用hive -e 可以執行多條語句
hive -e 'sentence1; sentence2;'
#進入hive 後檢視當前路徑
!pwd;
#hive 介面使用命令檢視hdfs路徑
dfs -ls / ;
#使用desc可以查看錶的資訊
desc <table.name>
#檢視分割槽表的分割槽資訊
show partitions <table.name>

通過檔案儲存的位置來看分割槽:

一般分割槽資訊不存在於load的表中

--分割槽表的建立
create database if
not exists bikepatition comment 'test database'; create table if not exists bikepatition.bike( tripduration string, starttime string, stoptime string, start_station_id string, start_station_name string, start_station_latitude string, start_station_longitude string, end_station_id string, end_station_name string
, end_station_latitude string, end_station_longitude string, bikeid string, usertype string, birth_year string, gender string ) --注意patition要放在ROW語句前面 --表示按照月份分割槽 partitioned by (time_month string,creator string) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' STORED AS TEXTFILE;

載入資料

--使用load載入並表明partitioned資訊
--兩個分割槽的標籤資訊,就會產生兩級的目錄 --可以load不同的表到同一個表中,建立不同的分割槽 load data local inpath '<絕對路徑>' into table <table_name> partition(time_month = <分割槽標籤>,creator = 'eric');
alter table <table_name> add partition(time_month=<標籤>,creator='eric') location '<本地檔案路徑>';
--刪除分割槽
alter table <table_name> drop partition(time_month=<標籤> ,creator='eric');