2015-08-19 2 views
2

Мой нынешний запрос на Apache Drill выглядит следующим образом -Apache Drill месиво с результатами

select 
CAST(columns[0] AS Integer) as ID, 
to_timestamp(SUBSTR(columns[10],1,14),'YYYYMMddHHmmss') as RecordDt 
from dfs.`/data/100Krows/` 

То, что я хотел бы сделать, это получить метаданные ModificationTime для каждого из CSV-файлов в моей папке в виде колонка что-то вроде этого -

select 
    CAST(columns[0] AS Integer) as ID, 
    to_timestamp(SUBSTR(columns[10],1,14),'YYYYMMddHHmmss') as RecordDt, 
    modificationTime as versionStartTime 
from dfs.`/data/100Krows/` 

ModificationTime метаданные может быть найден, когда я бегом следующего

SHOW FILES in dfs.data 

Есть ли способ достичь этого в его текущей версии 1.1 или 1.0?

UPDATE 1

То, что я действительно искал это файл метаданных, включенных в результирующий набор оператора выбора в отношении отдельных файлов

если моя структура каталогов выглядит следующим образом -

dir0 
dir1 
    samefilename.csv -- Modified Date - 10/01/2013 
    *******DATA****** 
    Col0,Col1,Col2 
    Val1-2013,Val2-2013,Val3-2014 
    *******DATA****** 
dir2 
    samefilename.csv -- Modified Date - 10/01/2014 
    *******DATA****** 
    Col0,Col1,Col2 
    Val1-2014,Val2-2014,Val3-2014 
    *******DATA****** 

Тип запроса Я хочу написать -

select 
    name    as filename, 
    modificationTime as versionStartTime, 
Col0, 
Col2, 
Col3 
from dfs.`/dir0/` 

Ожидаемый результат -

Columns[0]   Columns[1] Columns[2]  ..... 
samefileName.csv 10/01/2013 Val1-2013   ..... 
samefileName.csv 10/01/2014 Val1-2014   ..... 
+0

См. Ответ ниже. – Edmon

+0

См. Вопрос https://issues.apache.org/jira/browse/DRILL-3698 – Edmon

ответ

0

Dakuji,

Это в настоящее время точно не возможно (в версии 1.1), но здесь является прокси для него до этого Drill issue, что адресует ваш вопрос реализован. То, что я предлагаю ниже, не является точным решением, но с некоторой работой вы можете попасть туда.

Предпосылки и примечание:

  1. Есть .tbl расширение, зарегистрированное под .psv конфигурации системы хранения.
  2. Я делаю это под dfs.
  3. является заполнителем для файла, который вы называете, как хотите.

ли это из SQLLine подсказки сверла:

0: jdbc:drill:zk=local> use dfs; 
0: jdbc:drill:zk=local> record! <file_name.tbl> 
0: jdbc:drill:zk=local> SHOW FILES; 
0: jdbc:drill:zk=local> record! 
0: jdbc:drill:zk=local> select columns[9] from dfs.`<file_name.tbl>'; 

Там может быть какой-то шум в некоторых записях столбцов, но вы можете дополнительно отфильтровать, что с запросом.

> 0: jdbc:drill:zk=local> !record <file_name.tbl> 
Recording stopped. 
0: jdbc:drill:zk=local> select columns[9] from dfs.`<\path\<file_name.tbl>`; 
+---------------------------+ 
|   EXPR$0   | 
+---------------------------+ 
| null      | 
| null      | 
|  modificationTime  | 
| null      | 
| 2013-04-26 23:44:56.0 | 
| 2015-08-12 16:21:39.0 | 
| 2014-04-26 10:09:33.0 | 
| 2015-04-27 22:49:48.0 | 
| 2013-08-24 20:16:29.0 | 
| 2015-08-23 19:26:54.0 | 
| 2014-10-21 16:43:38.0 | 
| 2014-04-26 10:09:35.0 | 
| 2014-10-21 16:43:38.0 | 
| 2012-11-16 11:38:17.0 | 
| 2012-11-16 11:44:27.0 | 
| 2014-10-21 16:42:57.0 | 
| 2014-04-26 10:09:28.0 | 
| 2013-08-24 21:48:39.0 | 
| 2015-08-20 22:27:34.0 | 
+---------------------------+ 
19 rows selected (0.082 seconds) 
+0

Благодарим вас, что это меня достало, если я могу понять, как использовать что-то вроде курсора для итерации через вложенную структуру каталогов для комбинирования метаданных файлов с файловым содержимым/данными – dakuji

+0

Dakuji, мы открыли JIRA-проблему для поддержки функции, которую вы ищете. На данный момент это, вероятно, лучшее, что вы сможете получить от текущей (Drill 1.1) функциональности. – Edmon

Смежные вопросы