2017-07-18 34 views
2

我有一個要求,即需要將文件作爲Hive外部表中列的時間添加到HDFS文件夾中。將文件的上次修改日期添加到Hive外部表

例子:我有2個文件中投下

  • 2017年7月13日15:22
  • 2017年12月13日18:31

所以,我的last_modified列Hive表應該反映文件1中的所有行2017-07-13 15:22和文件2中的2017-12-13 18:31。

有沒有辦法在外部表創建語句中實現此操作。

在此先感謝!

回答

0

我還沒有遇到任何此類功能來解決您的問題。但是,您可以嘗試下面的步驟爲每個文件的最後修改時間保持在單獨的列:

  • last_modified列創建一個分區表。

    CREATE EXTERNAL TABLE test (record string) PARTITIONED BY 
    (last_modified string) location '<warehouse_location>/test.db/test' 
    
  • 對於每個文件,將新分區添加到您的表或使用插入語句加載到分區中。

    ALTER TABLE test ADD PARTITION (last_modified='2017-07-13 15:22') 
    location '<data-location>/newfile1/'; 
    

    創建新的文件一個單獨的臨時表然後插入數據 分區表:

    CREATE EXTERNAL TABLE tmp (record strin) location '<new data location>' 
    
    INSERT INTO TABLE test PARTITION (
    last_modified = '2017-07-13 15:22') SELECT record FROM tmp; 
    
相關問題