我想从日志文件中清除机器人条目。通过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中类似的查询工作完美。