【问题标题】:remove hyperlinks from tweets using hive使用 hive 从推文中删除超链接
【发布时间】:2016-04-16 12:09:46
【问题描述】:

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

【问题讨论】:

    标签: hadoop twitter hive


    【解决方案1】:

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

    最后,很可能你不应该在函数后面放一个空格,所以regexp_replace (...regexp_replace(...

    【讨论】:

    • 谢谢您,通过您提供的 Rubular 参考,我能够改进我的正则表达式并成功删除超链接。
    猜你喜欢
    • 1970-01-01
    • 2011-07-18
    • 1970-01-01
    • 2011-08-17
    • 2021-08-03
    • 2010-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多