蜂巢,要求在特定范围内的文件

时间:2018-07-10 11:12:42

标签: hadoop hive hdfs

假设在HDFS上我具有以下内容的文件:header('Access-Control-Allow-Methods: GET, POST, PUT, OPTIONS');data1-2018-01-01.txtdata1-2018-01-02.txtdata1-2018-01-03.txtdata1-2018-01-04.txt

现在我想根据日期查询文件:

data1-2018-01-06.txt

我的问题是:是否可以仅在满足我的查询的这些文件上创建一个外部表?也许您有任何解决方法?

我知道,我可以使用分区,但是它们需要在新数据集到达时手动获取数据。

1 个答案:

答案 0 :(得分:1)

将这些文件放入目录,并在其上创建新表。 另外,Hive具有INPUT__FILE__NAME虚拟列,您可以使用它进行过滤:

where INPUT__FILE__NAME like '%2018-01-03%'

还可以使用substr或regexp_extract从filename中获取日期,然后使用IN>, <进行过滤。