在插入到另一个表之前转换配置单元表中的数据

xpcnnkqh  于 2021-06-03  发布在  Hadoop
关注(0)|答案(1)|浏览(264)

我在 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 里怎么做?

ig9co6j1

ig9co6j11#

您可以尝试创建自定义项来实现这一点
参考。。
https://cwiki.apache.org/confluence/display/hive/hiveplugins

相关问题