sql - 如何在 Hive 中最后一次出现单词后提取字符串
问题描述
我的一个 Hive 表中有我的字符串列
select * from
(
select "edition_xx/news/radio_today_news_xx" as my_column
union all
select "edition_xx/news/news/television_1.3" as my_column
) A
我想提取 . 之后的字符串部分news/
。所以我的输出列看起来像
radio_today_news_xx
television_1.3
如何在 Hive 中使用正则表达式提取它?请注意,它news/
可能会出现 X 次,我想要字符串在最后一次出现之后。
解决方案
使用 split()
:
select split(my_column,'(news/)+')[1]
from
(
select "edition_xx/news/radio_today_news_xx" as my_column
union all
select "edition_xx/news/news/television_1.3" as my_column
) A;
此正则表达式表示news/
一次或多次
结果:
radio_today_news_xx
television_1.3
Time taken: 37.218 seconds, Fetched: 2 row(s)
推荐阅读
- node.js - 尝试将 MERN 应用程序部署到 Now (zeit.co) 时出现“sh: react-scripts: command not found”错误
- javascript - 如何每张幻灯片显示 2 张图片?
- java - 在android应用程序中的活动之间共享类的单个实例?
- highcharts - Highcharts - 'mouseOut' 事件后的'setState'
- amazon-web-services - 放大 ssl 配置卡住
- javascript - 加载页面后延迟加载不起作用
- android - CollapsingToolbar - 如何禁用标题动画?
- regex - 如何获取/提取 Google 表格单元格的链接和文本?
- ios - iOS PWA 是否有与蓝牙设备通信的解决方法?
- scala - 使用 scalatest 对 http4s 进行单元测试