使用 Hive 从字符串中提取带图案的文本
Extract patterned text from a string with Hive
我的列中有数据,如下所示:
Countryside_Video_-_A18-49_Pub_-Q3-_Flight_7_18_49_BOTH
Countryside Video - M18-25 Validated -Q4 - Flight 1
PremiumBrand_2019_Upfront_Video_-_W18-49_Validated_-_Q4_Flight_1_18_49_FEMALE
Travel Around the World - W25-54 Validated - Q3 25-54_FEMALE
我需要从每个字符串中提取年龄和性别值:
- A18-49
- M18-25
- W18-49
- W25-54
这很棘手,因为字母 A、M、F 和数字范围之间可能有任意数量的组合。这些字母表示年龄、男性或女性。号码范围就是年龄范围。
通过谷歌搜索,我似乎可以使用 regexp_extract 函数,但我是 Hive 的新手。如有任何帮助,我们将不胜感激!
我手边没有要测试的 Hive,但这可能有效:
select regexp_extract(col, '([AMW][0-9]{2}[-][0-9]{2})', 1)
我的列中有数据,如下所示:
Countryside_Video_-_A18-49_Pub_-Q3-_Flight_7_18_49_BOTH
Countryside Video - M18-25 Validated -Q4 - Flight 1
PremiumBrand_2019_Upfront_Video_-_W18-49_Validated_-_Q4_Flight_1_18_49_FEMALE
Travel Around the World - W25-54 Validated - Q3 25-54_FEMALE
我需要从每个字符串中提取年龄和性别值:
- A18-49
- M18-25
- W18-49
- W25-54
这很棘手,因为字母 A、M、F 和数字范围之间可能有任意数量的组合。这些字母表示年龄、男性或女性。号码范围就是年龄范围。
通过谷歌搜索,我似乎可以使用 regexp_extract 函数,但我是 Hive 的新手。如有任何帮助,我们将不胜感激!
我手边没有要测试的 Hive,但这可能有效:
select regexp_extract(col, '([AMW][0-9]{2}[-][0-9]{2})', 1)