天天看點

Hive基礎07、Hive引入Map

Hive基礎07、Hive引入Map

Hive基礎07、Hive引入Map

1、建表語句

建立一個成績表,記錄學生的各個科目成績:

英文關鍵字解析:

1、CREATE TABLE 建立一個指定名字的表,如果庫中已有相同名的表,則抛出異常;

使用者可以使用 IF NOT EXISTS 選項來忽略此異常。

2、EXTERNAL 關鍵字可以讓使用者建立一個外部表(預設建立内部表)。外部表在建表的同時必須指定一個指向實際資料的路徑(LOCATION),Hive在建立内部表時,會将資料移動到資料倉庫指向的路徑;若建立外部表,僅記錄資料所在的路徑,不對資料的位置做任何改變。在删除表的時候,内部表的中繼資料和資料會被一起删除,而外部表隻删除中繼資料,不删除資料。

3、COMMENT 是給表字段或者表内容添加注釋說明的。

4、PARTITIONED BY 給表做分區,決定了表是否為分區表。

5、CLUSTERED BY 對于每一個表(table)或者分區, Hive 可以進一步組織成桶,也就是說桶是更為細粒度的資料範圍劃分,Hive采用對列值哈希,然後除以桶的個數求餘的方式決定該條記錄存放在哪個桶當中。

6、ROW FORMAT DELIMITED FIELDS TERMINATED BY ‘,’, 這裡指定表存儲中列的分隔符,預設是 \001,這裡指定的是逗号分隔符,還可以指定其他列的分隔符。

7、STORED AS SEQUENCEFILE|TEXTFILE|RCFILE,如果檔案資料是純文字,可以使用 STORED AS TEXTFILE,如果資料需要壓縮,使用 STORED AS SEQUENCEFILE。

8、LOCATION 定義 hive 表的資料在 hdfs 上的存儲路徑,一般管理表(内部表不不要自定義),但是如果定義的是外部表,則需要直接指定一個路徑。 

create table tb_map(id int,name string,score map<string,float>) 
row format delimited
fields terminated by '\t'
collection items terminated by ','
map keys terminated by '='
lines terminated by '\n'
stored as textfile;      
Hive基礎07、Hive引入Map

檢視結構:

desc tb_map;      
Hive基礎07、Hive引入Map

2、建立資料檔案【mapInfo.txt】

1    王姑娘    javaBase=92,H5=95,Spring=98

2    巧榮姑娘    javaBase=90,H5=98,Spring=95

3    楊先生    javaBase=100,H5=100,Spring=100

上傳至服務:

3、導入資料

load data local inpath '/opt/temp/mapInfo.txt' into table tb_map;      

繼續閱讀