0

我在蜂巢中有一张桌子。

 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'

在将这些记录插入新表之前,我将正则表达式应用于 ip 和代理以提取每条记录的国家和浏览器类型。

我如何在蜂巢中做到这一点?

4

1 回答 1

0

您可以尝试创建 UDFS 来实现这一点

参考..

https://cwiki.apache.org/confluence/display/Hive/HivePlugins

于 2014-03-06T12:03:03.690 回答