使用配置单元

时间:2016-04-16 03:13:42

标签: hadoop twitter hive

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

1 个答案:

答案 0 :(得分:0)

regexp_replace是一种合适的方法,但您的正则表达式将被解释为"在第一次出现https之后用空字符串"替换所有内容。在这种情况下,您不需要括号,并且您的正则表达式模式需要通过查找https之后的第一个空白字符来更完整地定义要删除的URL的模式。请注意,正则表达式是"贪心"默认情况下,https.*之类的模式(.*后面有一个空格)将在text中查找最长的字符串。空间。通过添加?来改变这个?到通配符模式,如https.*?。另外,请记住,URL在所有情况下可能没有空格,可能是也可能不是https,但肯定会包含//:。使用Rubular这样的网站来处理正则表达式,然后在工作时添加到查询中。

最后,您可能不应该在功能之后放置空格,而不是regexp_replace (...执行regexp_replace(...