加載數據
適用於:磚運行時
將數據從用戶指定的目錄或文件加載到Hive SerDe表中。如果指定了一個目錄,則加載該目錄中的所有文件。如果指定了一個文件,則隻加載該文件。此外,負載數據
語句接受一個可選的分區規範。當指定分區時,數據文件(當輸入源是一個目錄時)或單個文件(當輸入源是一個文件時)被加載到目標表的分區中。
如果表已緩存,該命令將清除表的緩存數據及其引用它的所有依賴項。下一次訪問表或依賴項時,緩存將被惰性填充。
參數
路徑
文件係統路徑。它可以是絕對路徑,也可以是相對路徑。
標識要插入的表。名稱中不能包含時間規範.如果找不到表,數據庫會拋出一個TABLE_OR_VIEW_NOT_FOUND錯誤。
為插入指定目標分區的可選參數。您也可以隻指定部分分區。
當地的
如果指定,則會導致
INPATH
要針對本地文件係統進行解析,而不是針對通常是分布式存儲的默認文件係統。覆蓋
默認情況下,新數據被追加到表中。如果
覆蓋
時,則用新數據覆蓋表。
例子
——沒有分區說明的示例。——假設已經創建並填充了學生表。>選擇*從學生;的名字地址student_id--------- ---------------------- ----------艾米史密斯123公園大街,聖穆111111>創建表格test_load(的名字VARCHAR(64),地址VARCHAR(64),student_idINT)使用蜂巢;假設student表在'/user/hive/warehouse/'目錄下>負載數據當地的INPATH/用戶/蜂巢/倉庫/學生覆蓋成表格test_load;>選擇*從test_load;的名字地址student_id--------- ---------------------- ----------艾米史密斯123公園大街,聖穆111111——帶有分區規範的示例。>創建表格test_partition(c1INT,c2INT,c3INT)分區通過(c2,c3);>插入成test_partition分區(c2=2,c3=3.)值(1);>插入成test_partition分區(c2=5,c3=6)值(4);>插入成test_partition分區(c2=8,c3=9)值(7);>選擇*從test_partition;c1c2c3--- --- ---123.456789>創建表格test_load_partition(c1INT,c2INT,c3INT)使用蜂巢分區通過(c2,c3);假設test_partition表在'/user/hive/warehouse/'目錄下>負載數據當地的INPATH' /用戶/蜂巢/倉庫/ test_partition / c2 = 2 / c3 = 3 '覆蓋成表格test_load_partition分區(c2=2,c3=3.);>選擇*從test_load_partition;c1c2c3--- --- ---123.