Apache Drill 混搭文件元数据和结果
Apache Drill mash file metadata with results
我目前在 Apache Drill 上的查询如下 -
select
CAST(columns[0] AS Integer) as ID,
to_timestamp(SUBSTR(columns[10],1,14),'YYYYMMddHHmmss') as RecordDt
from dfs.`/data/100Krows/`
我想做的是将我文件夹中每个 .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 版本中实现这一点?
更新 1
我真正要找的是 select 针对单个文件的语句的结果集中包含的文件元数据
如果我的目录结构如下-
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 .....
祖师,
这目前不太可能(从 1.1 版开始),但在解决您的问题的 Drill issue 实现之前,这是它的代理。我在下面提出的并不是确切的解决方案,但通过一些工作可以帮助您实现目标。
先决条件和注意事项:
- 在 .psv 存储配置下注册了 .tbl 扩展名。
- 我是在dfs下做的
- 是您随意命名的文件的占位符。
在 Drill 的 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[=11=] |
+---------------------------+
| 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)
我目前在 Apache Drill 上的查询如下 -
select
CAST(columns[0] AS Integer) as ID,
to_timestamp(SUBSTR(columns[10],1,14),'YYYYMMddHHmmss') as RecordDt
from dfs.`/data/100Krows/`
我想做的是将我文件夹中每个 .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 版本中实现这一点?
更新 1
我真正要找的是 select 针对单个文件的语句的结果集中包含的文件元数据
如果我的目录结构如下-
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 .....
祖师,
这目前不太可能(从 1.1 版开始),但在解决您的问题的 Drill issue 实现之前,这是它的代理。我在下面提出的并不是确切的解决方案,但通过一些工作可以帮助您实现目标。
先决条件和注意事项:
- 在 .psv 存储配置下注册了 .tbl 扩展名。
- 我是在dfs下做的
- 是您随意命名的文件的占位符。
在 Drill 的 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[=11=] |
+---------------------------+
| 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)