2016-05-10 64 views
1

在配置單元中創建分區表時,是否必須始終選擇分區列的最後一列。 如果我選擇第一列作爲分區,我不能做過濾數據,有什麼辦法可以選擇分區的第一列嗎?配置單元第一列要在分區表中考慮

回答

0

在配置單元中,如果要分區表,則必須在表創建期間首先定義分區列。 &而數據填充到表中,您需要指定如下:

「INSERT INTO partitioned_table PARTITION(狀態)SELECT ID,名稱,從temp_tbl狀態」

這樣

使用,你可以分區基礎上最後一列只要。如果你想在第一列的基礎上進行分區。你必須爲此寫一個Mapreduce作業。這是唯一可用的選項。

0

我猜你正面臨的問題是你已經在你的本地系統或hdfs中有表「源」,並且你想把它上傳到分區表中。並且您希望將源表中的第一列分區爲配置單元。由於源表沒有標題,我想如果我們嘗試直接上傳配置單元目標文件夾中的文件,我們無法做任何事情。我知道的唯一替代方法是在配置單元中創建一個非分區表,其結構與源文件完全相同。然後將源數據首先上傳到非分區表中,然後將數據從非分區表複製到分區表中。 假設源文件是這樣,您可以上傳的數據是這樣的create table nopart(dept string, esal int,ename string, eid int) 然後您使用命令insert overwrite table source partition(dept) select eid,ename,esal,dept from nopart; 動態分區的參數的順序是這裏唯一點這樣 create table source(eid int, ename int, esal int) partitioned by (dept string) 您的非趙雪芝表。

相關問題