加載數據

適用於:勾選“是”磚運行時

將數據從用戶指定的目錄或文件加載到Hive SerDe表中。如果指定了一個目錄,則加載該目錄中的所有文件。如果指定了一個文件,則隻加載該文件。此外,負載數據語句接受一個可選的分區規範。當指定分區時,數據文件(當輸入源是一個目錄時)或單個文件(當輸入源是一個文件時)被加載到目標表的分區中。

如果表已緩存,該命令將清除表的緩存數據及其引用它的所有依賴項。下一次訪問表或依賴項時,緩存將被惰性填充。

語法

負載數據當地的INPATH路徑覆蓋表格table_name分區條款

參數

  • 路徑

    文件係統路徑。它可以是絕對路徑,也可以是相對路徑。

  • table_name

    標識要插入的表。名稱中不能包含時間規範.如果找不到表,數據庫會拋出一個TABLE_OR_VIEW_NOT_FOUND錯誤。

  • 分區條款

    為插入指定目標分區的可選參數。您也可以隻指定部分分區。

  • 當地的

    如果指定,則會導致INPATH要針對本地文件係統進行解析,而不是針對通常是分布式存儲的默認文件係統。

  • 覆蓋

    默認情況下,新數據被追加到表中。如果覆蓋時,則用新數據覆蓋表。

例子

——沒有分區說明的示例。——假設已經創建並填充了學生表。>選擇學生的名字地址student_id--------- ---------------------- ----------艾米史密斯123公園大街111111>創建表格test_load的名字VARCHAR64),地址VARCHAR64),student_idINT使用蜂巢假設student表在'/user/hive/warehouse/'目錄下>負載數據當地的INPATH/用戶/蜂巢/倉庫/學生覆蓋表格test_load>選擇test_load的名字地址student_id--------- ---------------------- ----------艾米史密斯123公園大街111111——帶有分區規範的示例。>創建表格test_partitionc1INTc2INTc3INT分區通過c2c3);>插入test_partition分區c22c33.1);>插入test_partition分區c25c364);>插入test_partition分區c28c397);>選擇test_partitionc1c2c3--- --- ---123.456789>創建表格test_load_partitionc1INTc2INTc3INT使用蜂巢分區通過c2c3);假設test_partition表在'/user/hive/warehouse/'目錄下>負載數據當地的INPATH' /用戶/蜂巢/倉庫/ test_partition / c2 = 2 / c3 = 3 '覆蓋表格test_load_partition分區c22c33.);>選擇test_load_partitionc1c2c3--- --- ---123.