Apache Drill查询多个目录

时间:2016-12-16 13:05:57

标签: apache-drill cross-join

我使用apache钻查询。我可以检索单独查询的数据,例如;

select * from sample.file1
select * from sample.file2

我需要的是获取文件夹中多个文件的结果。有没有办法递归获取数据或在apache钻取中使用交叉连接?

2 个答案:

答案 0 :(得分:0)

查询您的目录:

select * from <dir>  

sample.file1sample.file2/home/dev/data

目前你正在做类似的事情:

use dfs.`/user/dev/data`
select * from sample.file1
select * from sample.file2

改为使用:

use dfs.`/user/dev`
select * from data

答案 1 :(得分:0)

我找到了一个解决方案,它还可以从不同层次结构级别的不同文件夹中检索数据。

假设层次结构是;

| - mainFolder
| - | - folder1
| - | - | - sample1.json
| - | - | - sample2.json
| - | - | - folder2
| - | - | - | - sample4.json
| - | - folder3
| - | - | - sample5.json
| - | - | - sample6.json

从所有文件中获取所有数据;

SELECT * FROM mainFolder.* WHERE dir0=‘folder1' or dir0=‘folder3' or dir1=‘folder2'; 

&#34; dir&#34;之后的数字表示层次结构的级别。无需提供文件夹的路径。它分别检查给定级别的所有文件夹。仅从folder2 dir1='folder2'获取数据就足够了。