regex - 需要 Hive 等效于 oracle 的 regexp_extract 来提取模式之间的文本
问题描述
我的数据如下所示:
bizunit
nam-bu1-us-credit
nam-bu2-us-debit
latam-bu3-mx-debit
现在我想将nam
&提取latam
到一个名为 and 的单独列中,并将,region
提取到一个名为and的单独列中,并将其提取到一个名为的单独列中。bu1
bu2
bu3
business unit
us
mx
country
我会使用什么配置单元函数和 SQL?请分享一个示例 hive SQL 以将上述数据拆分为 3 列以按上述方式提取。
解决方案
CREATE TABLE myTably(
myText string
)
INSERT INTO TABLE concat_test VALUES
('nam-bu1-us-credit'),
('nam-bu2-us-debit'),
('latam-bu3-mx-debit');
这是提取地区、业务单位和国家/地区的查询
select
regexp_extract(myText, '([^-]+)-([^-]+)-([^-]+)-', 1),
regexp_extract(myText, '([^-]+)-([^-]+)-([^-]+)-', 2),
regexp_extract(myText, '([^-]+)-([^-]+)-([^-]+)-', 3) from MyTable
推荐阅读
- angular - Angular - DataSource 的 Observable 或 Subject
- sql - 如何使用 Hibernate 条件编写此查询。?
- scala - 错误:- java.lang.NoClassDefFoundError: scala/Product$class
- google-apps-script - 简单的触发器 onSelectionChange(e) 不起作用
- flutter - 为什么我不能更改我在 appbar 的前导属性中定义的 AppBar 中 CircleAvatar 的半径/大小
- reactjs - React Navigation 动画切换导航器闪烁
- android-studio - 为什么闪烁灯泡动画在从片段调用的广播接收器中不起作用
- c# - 使用文本框中的关键字从 url 搜索原始文本
- angular - 如何使用具有角度 9 的数据数组的数据创建表单组?
- c# - 具有共同父级的实体与具有可为空属性的 1 个实体分开