加載數據

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

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

語法

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

參數

  • 路徑

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

  • table_name

    標識要插入的表。名稱中不能包含時間規範

  • 分區條款

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

  • 當地的

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

  • 覆蓋

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

例子

——沒有分區說明的示例。——假設已經創建並填充了students表。>選擇學生的名字地址student_id--------- ---------------------- ----------艾米史密斯123公園大街111111>創建表格test_load的名字VARCHAR64),地址VARCHAR64),student_idINT使用蜂巢假設students表在'/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.