2016-09-18 58 views

回答

2

之後的任何問題,這條命令:dfs -mkdir /user/cloudera/sqoop_import/avroData/orders_part/order_month=2014-02;不會創建分區,它會創建一個目錄。此目錄尚未作爲表分區裝入。分區是一個目錄加上包含存儲在Metastore中的分區(鍵值+分區目錄)信息的元數據。執行mkdir後,您可以使用show partitions orders_part;命令輕鬆檢查它。該目錄不在分區列表中。

alter table orders_part add partition(order_month='2014-02');創建目錄order_month=2014-02並將其掛載爲分區。

分區可以動態地使用

insert overwrite table orders_part partition(order_month) 
select ... 

命令被創建。在這種情況下,目錄將自動創建並掛載爲分區。

請考慮這一點:您可以使分區不一定位於等於'key = value'的目錄中。例如:alter table orders_part add partition(order_month='2014-02') location '/user/cloudera/sqoop_import/avroData/orders_part/mydir' ;請注意分區目錄現在爲'/user/cloudera/sqoop_import/avroData/orders_part/mydir'

+0

謝謝@leftjoin,這很有幫助。 '顯示分區oders_part'顯示了這兩個分區,Iam使用cloudera quickstart vm 5.7.0 – venkata

+0

它可能會從您之前的表格加載。首先刪除分區(alter table drop partition),然後mkdir顯示分區。 mkdir不應該創建分區。 – leftjoin

+0

我創建了兩個分區,一個使用'alter table',另一個使用'直接創建目錄,當我做'show partitions orders_part'時,只有使用'alter table'創建的分區出現,但是在將數據加載到分區之後,當我做'show partitions orders_part'時顯示了這兩個文件。' – venkata

相關問題