從零自學Hadoop(15):Hive表操作

sinodzh發表於2015-12-08

閱讀目錄

本文版權歸mephisto和部落格園共有,歡迎轉載,但須保留此段宣告,並給出原文連結,謝謝合作。

文章是哥(mephisto)寫的,SourceLink

 

     上一篇,我們介紹了Hive和對其進行了安裝,下面我們就初步的使用hive進行講解。

   下面我們開始介紹hive的建立表,修改表,刪除表等。

建立表

一:Hive Client

  在Terminal輸入hive命令需要安裝Hive Client。

二:進入

  切換使用者,進入hive

su hdfs
hive

  

三:建立表

  語法:

CREATE (DATABASE|SCHEMA) [IF NOT EXISTS] database_name

  [COMMENT database_comment]

  [LOCATION hdfs_path]

  [WITH DBPROPERTIES (property_name=property_value, ...)];

  例子:

create table student (
  id             int,
  name       string,
  openingtime        string
);

 

四:建立帶有分割槽的表

      介紹:

  一個表可以擁有一個或者多個分割槽,每個分割槽以資料夾的形式單獨存在表資料夾的目錄下。分割槽是以欄位的形式在表結構中存在,通過describe table命令可以檢視到欄位存在,但是該欄位不存放實際的資料內容,僅僅是分割槽的表示。在Hive Select查詢中一般會掃描整個表內容,會消耗很多時間做沒必要的工作。有時候只需要掃描表中關心的一部分資料,因此建表時引入了partition概念。表中的一個 Partition 對應於表下的一個目錄,Partition 就是輔助查詢,縮小查詢範圍,加快資料的檢索速度和對資料按照一定的規格和條件進行管理。

  語法:

create table table_name (

  id                int,

  dtDontQuery       string,

  name              string

)

partitioned by (date string)

  例子:

create table score (

  id                int,

  studentid       int,

  score              double

)

partitioned by (openingtime string);

 

檢視錶

一:檢視所有表

show tables;

二:檢視某個表資訊

  我們通過Desctribe來顯示某個表的資訊

  語法:

DESCRIBE DATABASE [EXTENDED] db_name;

DESCRIBE SCHEMA [EXTENDED] db_name;     -- (Note: Hive 0.15.0 and later)

---------------------------------------------------------------------------------

DESCRIBE [EXTENDED|FORMATTED]  

  [db_name.]table_name[.col_name ( [.field_name] | [.'$elem$'] | [.'$key$'] | [.'$value$'] )* ];

                                        -- (Note: Hive 1.x.x and 0.x.x only)

                                        -- (see "Hive 2.0+: New Syntax" below)

  例子:

DESCRIBE student;
DESCRIBE score;

三:檢視某列資訊

DESCRIBE student.id;

 

修改表

一:改表名

  語法:

ALTER TABLE table_name RENAME TO new_table_name;

  例子:

alter table student rename to student1;

二:修改列

  語法:

ALTER TABLE table_name [PARTITION partition_spec] CHANGE [COLUMN] col_old_name col_new_name column_type

  [COMMENT col_comment] [FIRST|AFTER column_name] [CASCADE|RESTRICT];

  例子:

alter table student1 change name name1 string;

 

三:增加/替換列

  語法:

ALTER TABLE table_name [PARTITION partition_spec]

  ADD|REPLACE COLUMNS (col_name data_type [COMMENT col_comment], ...)

  [CASCADE|RESTRICT]

  例子:

alter table student1 add columns (sex int);

刪除表

一:刪除表

  語法:

DROP (DATABASE|SCHEMA) [IF EXISTS] database_name [RESTRICT|CASCADE];

  例子:

drop table score;

--------------------------------------------------------------------

  到此,本章節的內容講述完畢。

系列索引

  【源】從零自學Hadoop系列索引

 

 

 

 

本文版權歸mephisto和部落格園共有,歡迎轉載,但須保留此段宣告,並給出原文連結,謝謝合作。

文章是哥(mephisto)寫的,SourceLink

 

相關文章