hive的regexserde:我的正则表达式出了问题,我不知道是什么

时间:2013-08-23 17:04:31

标签: regex hive

我的价值仍然是空的......

模式字符串空间字符串空间日期空间字符串的正则表达式直到行尾

([^ ]*)\s([^ ]*)\s(\[[0-9][0-9]\/[A-Za-z]{3}\/[0-9]{4}:[0-9]{2}:[0-9]{2}:[0-9]{2} \+0000\])\s(.*$)

它应该匹配的行的类型(随机生成的行)

filesystem af68ccf949ebc07c250b37a10fa40912 [20/Aug/2013:19:00:11 +0000] fbec6e8ec3fa6687426f8437cdd8593f346081ca1978057a

http://rubular.com/

似乎是对的

创建表:

CREATE TABLE example1 ( 
 user STRING,
 bucket STRING,
 date STRING,
 rest STRING )
ROW FORMAT SERDE 'org.apache.hadoop.hive.contrib.serde2.RegexSerDe'
WITH SERDEPROPERTIES (
 "input.regex" = "([^ ]*)\s([^ ]*)\s(\[[0-9][0-9]\/[A-Za-z]{3}\/[0-9]{4}:[0-9]{2}:[0-9]{2}:[0-9]{2} \+0000\])\s(.*$)",
 "output.format.string" = "%1$s %2$s %3$s %4$s"
)
STORED AS TEXTFILE

1 个答案:

答案 0 :(得分:0)

仍然不知道为什么我的正则表达式不起作用但这似乎有效

([^ ]*) ([^ ]*) ([^ ]* \+[^ ]*)[^ ]* (.*)