假设在HDFS上我具有以下内容的文件:header('Access-Control-Allow-Methods: GET, POST, PUT, OPTIONS');
,data1-2018-01-01.txt
,data1-2018-01-02.txt
,data1-2018-01-03.txt
,data1-2018-01-04.txt
现在我想根据日期查询文件:
data1-2018-01-06.txt
我的问题是:是否可以仅在满足我的查询的这些文件上创建一个外部表?也许您有任何解决方法?
我知道,我可以使用分区,但是它们需要在新数据集到达时手动获取数据。
答案 0 :(得分:1)
将这些文件放入目录,并在其上创建新表。 另外,Hive具有INPUT__FILE__NAME虚拟列,您可以使用它进行过滤:
where INPUT__FILE__NAME like '%2018-01-03%'
还可以使用substr或regexp_extract从filename中获取日期,然后使用IN
或>, <
进行过滤。