2016-11-11 2 views
2

Я ищу SELECT строк в улье, которые имеют специальный символ [a-zA-Z0-9] в столбце.В Hive, который хочет выбрать строки, имеющие специальный символ в столбце

Я не совсем уверен, как построить ИНЕКЕ, но на основании других потоков я думаю, что это должно выглядеть примерно так:

SELECT DISTINCT user_name 
FROM user_info 
WHERE user_name like regexp_extract('%[^a-zA-Z\d\s:]%') 

но улей при условии, эту ошибку:

Error while compiling statement: FAILED: SemanticException [Error 10014]: Line 3:21 Wrong arguments ''%[^a-zA-Z\d\s:]%'': No matching method for class org.apache.hadoop.hive.ql.udf.UDFRegExpExtract with (string). Possible choices: FUNC(string, string) FUNC(string, string, int)

Как должен ли я создать предложение regexp_extract?

Благодаря

ответ

2
SELECT DISTINCT user_name 
FROM user_info 
WHERE user_name rlike '[^a-zA-Z\\d\\s:]' 

https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF#LanguageManualUDF-StringOperators

hive> select 'Dudu Markovitz: 123' rlike '[^a-zA-Z\\d\\s:]'; 
OK 
false 
hive> select 'Dudu Markovitz: @123' rlike '[^a-zA-Z\\d\\s:]'; 
OK 
true 
+0

Это не приводит к ошибке, но не дали результатов, которые я ожидал. Все еще тестирование. Спасибо, потому что я не знал об этом. – Jazzmine

+0

Отлично работает - определенно решение для вопроса. благодаря – Jazzmine