如何在 Hive 中使用 regexp_replace() 一次删除多个字符?

Posted

技术标签:

【中文标题】如何在 Hive 中使用 regexp_replace() 一次删除多个字符?【英文标题】:How to remove multiple characters at once using regexp_replace() in Hive? 【发布时间】:2020-01-06 10:51:31 【问题描述】:

我正在尝试清理 Hive 表中的数据。我需要替换列中的一些字符,但我无法弄清楚如何在 Hive SQL 中使用 regexp_replace() 一次删除多个字符。

以下内容很简单,可以按预期工作:

select regexp_replace('abc-de-ghi', '-','');

和输出: abcdefghi

但我不知道如何清理包含不同字符的字符串:

select regexp_replace('abc-de/ghi@jkl:mn#op', <i-dont-know-what-goes-here>,'');

有人可以帮我解决这个问题吗?

【问题讨论】:

【参考方案1】:

使用'[-/@:#]' 模板和要删除的字符集(在括号中):

select regexp_replace('abc-de/ghi@jkl:mn#op','[-/@:#]','');

结果:

OK
abcdeghijklmnop
Time taken: 4.656 seconds, Fetched: 1 row(s)

【讨论】:

以上是关于如何在 Hive 中使用 regexp_replace() 一次删除多个字符?的主要内容,如果未能解决你的问题,请参考以下文章

在 Zeppelin 中如何使用 Hive

在 Zeppelin 中如何使用 Hive

如何在 Hive 中使用子查询

Flutter & Hive - 如何在 Hive 中保存重新排序的列表

如何在Hive中使用Map类型

如何在 Hive 中使用字典进行映射?