目前,我有一个初始系统正在工作,它读取一个文件,每行格式如下所示:
REVISION 12 30364918 Anarchism 2005-12-06T17:44:47Z RJII 141644
使用此代码:
CREATE EXTERNAL TABLE mytable(type STRING, aid BIGINT, rid BIGINT, title STRING, ts STRING, uname STRING, uid STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY ' ' STORED AS TEXTFILE LOCATION '/my/local/path/to/file';
但现在我有了一个文件,每行的格式如下:
2001-04-29T15:43:48Z [10656,251129]
(请注意,时间戳后面有一个选项卡)
我不知道如何从中提取数据。我在网上找了一些建议,但似乎什么也找不到。
如果理论上我想从中得到
ts STRING -> 2001-04-29T15:43:48Z
aid BIGINT -> 10656
rid BIGINT -> 251129
1条答案
按热度按时间zte4gxcn1#
看起来第二个字段是json数组。您可以创建一个Map到实际底层结构的表,并定义一个视图来提取值。brickhouse的“from_json”和“json_split”自定义项(http://github.com/klout/brickhouse )可以为您解析json