Я хочу извлечь (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;
Я не очень разбираюсь в регулярных выражениях. Кто-нибудь может мне помочь?