例如:
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|(多维数据集|汇总)。
所以我看不出模糊匹配代码片段有什么问题。
有人能帮我吗?
提前谢谢。
1条答案
按热度按时间nkhmeac61#
'(?i)money|life'
regexp将匹配包含money
,life
,不区分大小写-(?i)