2017-07-18 27 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; 
    
相关问题