Ответ 1
Откажитесь от https://cwiki.apache.org/confluence/display/Hive/LanguageManual, если вы этого не сделали. Я ссылаюсь на него все время, когда я пишу запросы для улья.
Я ничего не делал, когда пытался совместить часть слова, но вы можете проверить RLIKE
(в этом разделе https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF#Relational_Operators)
Это, вероятно, немного хакерская работа, но вы можете сделать дополнительный запрос, где вы проверяете, соответствует ли оно положительному значению, и выполните CASE
(http://wiki.apache.org/hadoop/Hive/LanguageManual/UDF#Conditional_Functions), чтобы иметь известное значение для основного запроса, чтобы проверить, соответствует ли оно или нет.
Другой вариант - написать UDF, который выполняет проверку.
Я просто занимаюсь мозговым штурмом, сидя дома, не имея доступа к Hive, поэтому мне может не хватать чего-то очевидного.:)
Надеюсь, что это помогает в той или иной форме. \^ _ ^/
EDIT: добавление дополнительного метода из моего комментария ниже.
Для вашего предоставленного примера colName RLIKE '[^ r] [^ o] [^ o] [^ t] ~\w' Это может быть не оптимальный REGEX, а что-то для поиска вместо подзапросов