rlike子句中的Hive子查询

时间:2016-02-15 14:31:47

标签: mysql hadoop hive weblog bigdata

我想从日志文件中清除机器人条目。通过weblog中的用户代理字段识别抓取工具的方法之一。我已将原始日志存储在crawler表中的常用抓取工具的一个文件夹和令牌中。要清理那些具有与令牌i匹配的用户代理的日志,这样就可以进行此查询

CREATE TABLE temp 
AS
SELECT host,time,method,url,protocol,status,size,referer,agent 
FROM raw_logs
WHERE 
agent NOT RLIKE (SELECT concat_ws("|",collect_set(concat("(.*",token,".*)"))) FROM crawler) ; 

它给了我parseException cannot recognize input near 'SELECT' 'concat_ws' '(' in expression specification

如果我手动替换子查询的结果,那么它就完美了。

CREATE TABLE temp 
AS
SELECT host,time,method,url,protocol,status,size,referer,agent 
FROM raw_logs
WHERE agent NOT RLIKE '(.*Googlebot.*)|(.*bingbot.*)'  ;

hive 1.0.1不支持LIKE子句中的子查询吗? 在mysql中类似的查询工作完美。

0 个答案:

没有答案