Hive Load語句不會在加載數據的時候做任何轉換工作,而是純粹的把數據文件復制/移動到Hive表對應的地址。
語法
LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename [PARTITION (partcol1=val1,partcol2=val2 ...)]
描述
-
如果命令中帶有LOCAL,說明從本地文件系統加載數據,文件路徑可以是相對路徑,也可以是絕對路徑。在這種情況下,首先將文件從本地復制到hdfs相應的位置,然后移動到hive表格中,這個時候原始數據文件是存在於hive表之下的路徑下。這一點我會專門寫一篇關於hive外部表的相應博文。
-
如果命令中沒有LOCAL,代表我們的數據是從hdfs中讀取文件,這個時候如果我們使用的是內部表,相應的hdfs的原始文件會消失,進入到相應的表格中。
-
filepath 可以是一個相對路徑,也可以是一個絕對路徑。可以是一個文件,也可以是一個文件夾目錄(這個時候文件夾下的所有文件都會被加載),
-命令中如果帶有overwirte,代表加載數據之前會清空目標表格,否則就是追加的方式。