【问题标题】:Extract patterned text from a string with Hive使用 Hive 从字符串中提取带图案的文本
【发布时间】:2020-05-01 09:15:51
【问题描述】:

我的列中有如下所示的数据:

  • Countryside_Video_-_A18-49_Pub_-Q3-_Flight_7_18_49_BOTH

  • 乡村视频 - M18-25 验证 -Q4 - 航班 1

  • PremiumBrand_2019_Upfront_Video_-_W18-49_Validated_-_Q4_Flight_1_18_49_FEMALE

  • 环游世界 - W25-54 验证 - Q3 25-54_FEMALE

我需要从每个字符串中提取年龄和性别值:

  • A18-49
  • M18-25
  • W18-49
  • W25-54

这很棘手,因为字母 A、M、F 和数字范围之间可以有任意数量的组合。这些字母表示年龄、男性或女性。数字范围是年龄范围。

通过一些谷歌搜索,看起来我可以使用 regexp_extract 函数,但我是 Hive 的新手。对此的任何帮助将不胜感激!

【问题讨论】:

  • 尝试通用方法来查找和匹配记录 select * , regexp_extract(id1, '([AZ]+[0-9]{2}.[0-9]{2})', 1) 从 temp3;

标签: sql hive regexp-replace


【解决方案1】:

我手头没有 Hive 可供测试,但这可能有效:

select regexp_extract(col, '([AMW][0-9]{2}[-][0-9]{2})', 1)

【讨论】:

    猜你喜欢
    • 2021-06-08
    • 1970-01-01
    • 1970-01-01
    • 2020-10-06
    • 2021-12-29
    • 2012-02-25
    • 1970-01-01
    相关资源
    最近更新 更多