如何写模糊多子串匹配时使用rlike在Hive

s6fujrry  于 2021-06-24  发布在  Hive
关注(0)|答案(1)|浏览(451)

例如:

df.select('category').show()

+---------------------------+
|                   category|
+---------------------------+
|            money,insurance|
|            life, housework|
|           game,FPS,network|
|            game,fight,jump|
|                      hotel|
|                 trip,hotel|
|                       null|

我想用 RLIKE 要编写正则表达式来模糊匹配子串列表中的一个子串, ['money', 'life'] .

-- This is an exact match
SELECT * 
FROM tb_name
WHERE col_name RLIKE '(money|life)'

-- This is a fuzzy match
SELECT * 
FROM tb_name
WHERE col_name RLIKE '*.(money|life)'

但是模糊匹配代码片段中的ast-tree中存在错误。
06-11 16:59:17-16树
(tok_查询(tok_from(tok_tabref(tok_tab tb_name)))(tok_插入(tok_目的地(tok_dir)”hdfs://x/xx))(tokïselect(tokïselexpr tokïallcolref))(tokïwhere(rlike(tokïtableïorïcol colïname)'(money | life)')(tokïlimit 2000)))
06-11 16:59:17-致命过滤器功能:.tok|tab\s tdw|u inter|db.
.|.tok|(多维数据集|汇总)。
所以我看不出模糊匹配代码片段有什么问题。
有人能帮我吗?
提前谢谢。

nkhmeac6

nkhmeac61#

'(?i)money|life' regexp将匹配包含 money , life ,不区分大小写- (?i)

相关问题