2014-10-02 91 views
4

我是Hive的新手,我想知道插入覆蓋是否會覆蓋我創建的現有表。 我想篩選已經創建的表,我們稱之爲TableA,只選擇年齡大於18的行。我可以使用插入覆蓋表來實現這一點嗎?Hive插入覆蓋表

我想寫東西喜歡的:

INSERT OVERWRITE TABLE TableA SELECT a.Age FROM TableA WHERE a.Age > = 18 

有NA在我創建的表項,但我相信,經過我過濾此表會出現在年齡欄沒有來港,右?

回答

17

自我過濾和插入不支持,但在配置單元中。

我建議以下步驟在您的情況:

  1. 創建一個類似的表,說塔布,具有相同的結構。

    create table tabB like tableA; 
    

2.然後你就能把自己的過濾器,並插入到這個新表。

 INSERT OVERWRITE TABLE tabB SELECT a.Age FROM TableA WHERE a.Age > = 18 

希望這有助於。

+0

是的,它絕對有幫助。另外,如果我有多個Age列(表示家族中的不同成員),我將如何在執行INSERT OVERWRITE TABLE時選擇多個列? – 2014-10-03 13:34:13

+0

你插入覆蓋表後添加任何邏輯,一個大的子查詢 – 2014-10-03 13:51:10

+0

如果有幫助,請接受答案 – 2014-10-03 13:51:28