регулярное выражение для журнала доступа в улье serde

Я хочу извлечь (ip, requestUrl, timeStamp) из журналов доступа для загрузки в базу данных куста. Одна строка из журнала доступа выглядит следующим образом.


66.249.68.6 - - [14/Jan/2012:06:25:03 -0800] "GET /example.com HTTP/1.1" 200 708 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"

Я безуспешно пытался со следующими и несколькими вариантами регулярного выражения (загруженная таблица содержит все значения NULL, указывающие, что регулярное выражение не соответствует входным).


CREATE TABLE access_log (
  remote_ip STRING,
  request_date STRING,
  method STRING,
  request STRING,
  protocol STRING
)
ROW FORMAT SERDE 'org.apache.hadoop.hive.contrib.serde2.RegexSerDe'
WITH SERDEPROPERTIES  (
"input.regex" = "([^ ]) . . [([^]]+)] \"([^ ]) ([^ ]) ([^ \"])\" *",
"output.format.string" = "%1$s %2$s %3$s %4$s %5$s"
)
STORED AS TEXTFILE;

Я не очень разбираюсь в регулярных выражениях. Кто-нибудь может мне помочь?

6
задан chamibuddhika 1 February 2012 в 19:52
поделиться