我用的是Hive0.13!我想在我的数据中找到多个像“hip hop”和“rock music”这样的代币,并用“hip hop”和“rockmusic”替换它们——基本上不用空格就可以替换它们。我在hive中使用了regexp\u replace函数。下面是我的查询,它适用于以上两个例子。
drop table vp_hiphop;
create table vp_hiphop as
select userid, ntext,
regexp_replace(regexp_replace(ntext, 'hip hop', 'hiphop'), 'rock music', 'rockmusic') as ntext1
from vp_nlp_protext_males
;
但是我有100个这样的bigram/ngram,我希望能够在删除空白的地方高效地进行替换。我可以匹配短语-嘻哈和摇滚乐,但在取而代之的是我想简单地修剪空白。下面是我试过的。我也尝试过使用trim和regexp\u replace,但是它需要regexp\u replace函数中的第三个参数。
drop table vp_hiphop;
create table vp_hiphop as
select userid, ntext,
regexp_replace(ntext, '(hip hop)|(rock music)') as ntext1
from vp_nlp_protext_males
;
1条答案
按热度按时间kyvafyod1#
可以使用
TRANSLATE
函数将子字符串替换为空字符串。对于您的查询,它将变成: