HiveQL - 字符串在 hiveql UDF 中包含等效项吗?

Sha*_*kar 4 string hive substring hiveql

我想使用 hiveql UDF 检查字符串是否包含任何特定字符?

我遇到了下面的一个。

find_in_set(str, strlist)
Run Code Online (Sandbox Code Playgroud)

这是要使用的正确UDF吗?

例如:

下面的列的值中包含“1”。

column1 = "test1String"
Run Code Online (Sandbox Code Playgroud)

我需要编写一个 HiveQL,其中条件返回 column1 值包含 1 的行。

lef*_*oin 5

int instr(string str, string substr)
Run Code Online (Sandbox Code Playgroud)

返回 substr 在 str 中第一次出现的位置。如果任一参数为 null,则返回 null,如果在 str 中找不到 substr,则返回 0。请注意,这不是基于零的。str 中的第一个字符的索引为 1。

select case when instr (column1, '1') >0 then 'contains' else 'not contains' end from ... 
Run Code Online (Sandbox Code Playgroud)

请参阅此参考:https : //cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF

还使用rlike

select case when column1 rlike '1'  then 'contains' else 'not contains' end
Run Code Online (Sandbox Code Playgroud)

使用like

select case when column1 like '%1%'  then 'contains' else 'not contains' end
Run Code Online (Sandbox Code Playgroud)

使用locate

select case when locate('1', column1) >0 then 'contains' else 'not contains' end
Run Code Online (Sandbox Code Playgroud)