Hive數據操作 1.向管理表中裝載數據 1.向管理表中裝載數據 hive沒有行級別數據插入、數據更新和刪除操作。 採用“大量”的數據裝載操作,或者通過其它方式僅僅將文件寫入到正確目錄下。 LOAD DATA LOCAL INPATH '${env:HOME}/california-employee ...
Hive數據操作
1.向管理表中裝載數據
hive沒有行級別數據插入、數據更新和刪除操作。
採用“大量”的數據裝載操作,或者通過其它方式僅僅將文件寫入到正確目錄下。
LOAD DATA LOCAL INPATH '${env:HOME}/california-employees' OVERWRITE INTO TABLE employees PARTITION (country='US', state='CA'); 關於PARTITION:- 如果分區目錄不存在,該命令會先創建分區,然後將數據拷貝到該分區目錄。
- 如果目標表為非分區表,需要省略PARTITION子句。
- LOAD DATA LOCAL......拷貝本地數據到位於分散式文件系統上的目標位置。
- LOAD DATA......轉移數據到目標位置。
- 若有該關鍵字,目標文件夾中之前存在的數據會先被刪除。
- 若沒有該關鍵字,會把新增的文件增加到目標文件夾中而不會刪除之前的。
- 若目標文件夾中存在和裝載的文件同名文件,舊的文件將會被覆蓋重寫。
- 若使用了該關鍵字,之前 分區中內內容(或無分區表中內容)將會被覆蓋掉。
- 若未使用該關鍵字或者使用了INTO關鍵字,hive將會以追加的方式寫入數據。
- HIVE根據SELECT語句中最後2列確定分區欄位country和state的值。這就是為什麼在表staged_employees中我們使用了不同的命名,是為了強調源表欄位值和輸出分區值之間的關係是根據位置而不是根據命名來匹配的。
- 假設表staged_employees中有100個國家和州的話,執行完上述語句後,表employees就會有100個分區。
- 該功能常用於從一個大的寬表中選取部分需要的數據集。
- 該功能不能用於外部表。