2016-12-16 7 views
0

Я использую запросы сверла apache. Я могу получить данные для отдельных запросов, например;Запрос на сверление Apache по нескольким каталогам

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

Что мне нужно - это получить результаты для нескольких файлов в папке. Есть ли способ получить данные рекурсивно или использовать перекрестное соединение в сверле apache?

ответ

0

Запрос ваш каталог:

select * from <dir> 

Say 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 
+0

спасибо, он работает для файлов в том же каталоге. –

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'; 

где число после "dir" представляет уровень иерархии. Нет необходимости указывать путь к папке. Он проверяет всю папку (ы) на заданном уровне (уровнях) отдельно. Для получения данных из только папки2 dir1='folder2' будет достаточно.