我在 hive 里有张table。
CREATE external TABLE apacheLogs4(
ip STRING,
instance STRING,
time STRING,
request STRING,
status STRING,
size STRING,
referer STRING,
agent STRING,
last STRING)
ROW FORMAT SERDE 'org.apache.hadoop.hive.contrib.serde2.RegexSerDe'
WITH SERDEPROPERTIES (
"input.regex" = "\"([^ ]*)\" ([^ ]*) - - \\[(.*)\\] ([^ \"]*|\"[^\"]*\") (-|[0-9]*) (-| [0-9]*) ([^ \"]*|\"[^\"]*\") ([^ \"]*|\"[^\"]*\") ([^ ]*)",
"output.format.string" = "%1$s %2$s %3$s %4$s %5$s %6$s %7$s %8$s %9$s"
)
STORED AS TEXTFILE
LOCATION '/home/~user/Documents/apache_logs2'
我将regex应用于ip和agent,以提取每个记录的国家和浏览器类型,然后将这些记录插入新表中。
我在 hive 里怎么做?
1条答案
按热度按时间ig9co6j11#
您可以尝试创建自定义项来实现这一点
参考。。
https://cwiki.apache.org/confluence/display/hive/hiveplugins