【问题标题】:How to Filter using Regular Expression in Pig latin如何在 Pig latin 中使用正则表达式进行过滤
【发布时间】:2013-05-15 06:45:10
【问题描述】:

我必须找到一个名字,因为第一个字母是“P”,最后一个字母是“l”。 在 sql 中,我们将其命名为 'P%%l'。 在 pig latin 命令中,如何给出。

【问题讨论】:

    标签: regex apache-pig


    【解决方案1】:

    您可以将 FILTER 命令与正则表达式一起使用,例如

    X = FILTER A BY (name matches '\AP\w*l\b');
    

    【讨论】:

    【解决方案2】:

    Pig 中正则表达式的格式是 Java 支持的 因此,在 FILTER 中使用匹配项: 结果 = FILTER input BY name 匹配 '^P.*I$'

    【讨论】:

      【解决方案3】:

      SQL '%' 的 Pig 等价物是 '.*'

      所以你可以使用

      X = FILTER A BY (name matches 'P.*I');
      

      参考:http://pig.apache.org/docs/r0.10.0/basic.html#comparison

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-06-23
        • 1970-01-01
        • 2012-06-08
        • 2016-03-07
        • 2015-03-21
        • 2023-03-15
        • 2018-04-13
        相关资源
        最近更新 更多