使用hive从tweet中删除超链接

qoefvg9y  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(444)

我是大数据领域的新手,刚刚开始学习。我在hive中有一个tweets表,在它的文本字段中,许多记录包含超链接。我想删除这些超链接,但我不能这样做。由于配置单元中不支持charindex和其他用于此目的的sql函数,即使在搜索了很多之后,我也找不到任何线索。我试着用regexp\u replace来做,但是它给了我“索引超出范围”的错误,这意味着我可能没有编写正确的regexp。这是我的疑问 SELECT text, regexp_replace (text, '(https.*)', '') FROM tweets; 任何帮助都将不胜感激。

r6vfmomb

r6vfmomb1#

regexp_replace 是一种合适的方法,但是您的正则表达式将被解释为“在第一次出现 https 使用空字符串”。在这种情况下,不需要括号,regexp模式需要更完整地定义要删除的url的模式,很可能是通过查找https后面的第一个空格字符。请注意,regexp在默认情况下是“贪婪的”,因此 https.* (后面有空格) .* )将查找其中最长的字符串 text 以一个空格开始。通过添加一个?通配符模式,比如 https.*? . 另外,请记住,url可能不是在所有情况下都有一个空格,可能是https,也可能不是https,但肯定会包含一个 //: . 使用诸如rubular这样的站点来处理regexp,然后在查询正常工作时将其添加到查询中。
最后,您可能不应该在函数so后面加空格,而不是 regexp_replace (...regexp_replace(...

相关问题