Подзапрос Hive в предложении rlike
Я хочу очистить записи роботов из файла журнала. Один из способов идентифицировать сканеры по полю пользовательского агента в веб-журнале. Я сохранил необработанные журналы в одной папке и маркер популярных сканеров в crawler
Таблица. Чтобы очистить журналы, в которых пользовательский агент совпал с токеном, я сделал этот запрос
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.*)' ;
Так что подзапрос в LIKE
предложение не поддерживается hive 1.0.1? Подобный запрос в MySQL работает отлично.