【问题标题】:Extracting text after certain characters in string in hive在配置单元中的字符串中的某些字符之后提取文本
【发布时间】:2018-01-25 17:31:09
【问题描述】:

我每行都有多个 ID,我想提取每行中某些文本之后的数字。下面可能是我在 id 列中的值。

test123; tghy876; 8906; TT-1234
best123; tghy8656; 88706; TT-5678

我希望输出只返回 tt- 之后的数字,所以我的输出应该如下所示。

1234
5678

应该使用什么配置单元代码来实现这一点?

【问题讨论】:

    标签: hadoop hive substring hiveql bigdata


    【解决方案1】:

    使用正则表达式 - 返回 '; 之后任意位数的第一组TT-'

    select regexp_extract(src_string,'\; TT-(\\d+)',1);
    

    演示:

    hive> select regexp_extract('best123\; tghy8656\; 88706\; TT-5678','\; TT-(\\d+)',1);
    OK
    5678
    Time taken: 0.056 seconds, Fetched: 1 row(s)
    hive>
    

    【讨论】:

      【解决方案2】:

      能够使用多次拆分来做到这一点。

      拆分(拆分(id,"tt-")[1],";")[0]

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-11-24
        • 1970-01-01
        • 1970-01-01
        • 2020-12-11
        • 1970-01-01
        • 2014-01-16
        • 2019-07-08
        相关资源
        最近更新 更多