sql—在配置单元中查找选择列中具有特殊字符的行

h5qlskok  于 2021-06-28  发布在  Hive
关注(0)|答案(1)|浏览(353)

我希望在配置单元中选择列中具有特殊字符[a-za-z0-9]的行。
我不太确定如何构造where子句,但基于其他线程,我认为它应该类似于:

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

但hive提供了以下错误:
编译语句时出错:失败:semanticexception[error 10014]:行3:21错误的参数“%[^a-za-z\d\s:]%”:类org.apache.hadoop.hive.ql.udf.udfregexpextract没有与(string)匹配的方法。可能的选择:func(string,string)func(string,string,int)
如何设置regexp\u extract子句?
谢谢

rm5edbpk

rm5edbpk1#

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-字符串运算符

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

相关问题