【发布时间】:2016-12-24 04:51:48
【问题描述】:
我使用 apache 钻取查询。我可以为单独的查询检索数据,例如;
select * from sample.file1
select * from sample.file2
我需要的是获取文件夹中多个文件的结果。有没有办法以递归方式获取数据或在 apache 演习中使用交叉连接?
【问题讨论】:
我使用 apache 钻取查询。我可以为单独的查询检索数据,例如;
select * from sample.file1
select * from sample.file2
我需要的是获取文件夹中多个文件的结果。有没有办法以递归方式获取数据或在 apache 演习中使用交叉连接?
【问题讨论】:
查询您的目录:
select * from <dir>
说sample.file1和sample.file2在/home/dev/data中
目前你正在做类似的事情:
use dfs.`/user/dev/data`
select * from sample.file1
select * from sample.file2
改为使用:
use dfs.`/user/dev`
select * from data
【讨论】:
我找到了一个解决方案,它还可以从不同层次结构的不同文件夹中检索数据。
比方说,层次结构是;
| - 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';
其中“dir”后面的数字代表层次结构的级别。无需提供文件夹的路径。它分别检查给定级别中的所有文件夹。仅从 folder2 dir1='folder2' 获取数据就足够了。
【讨论】: