hive - 是否可以通过使用 Hive Script SQL 中的分隔符来提取字符串的一部分?
问题描述
我已经分配了一个问题来按类别对每个 id 用户发生的问题进行分组。类别栏以“MainProblem@Detail1@Detail2”的形式记录。我想知道我是否可以使用hive脚本sql中的函数substring_index()通过以下代码提取主要问题和最后的detail2:
select
substring_index(category_out_line, "@",1) as MainProblem,
substring_index(category_out_line, "@",-1) as Detail2 `
from TableA;
解决方案
您可以在问题中使用 substring_index 来提取第一个和最后一个元素,但如果您需要提取所有元素,或者第二个、第三个等,拆分更好:
split("MainProblem@Detail1@Detail2",'@')[0] --returns MainProblem
split("MainProblem@Detail1@Detail2",'@')[1] --returns Detail1
split("MainProblem@Detail1@Detail2",'@')[2] --returns Detail2
推荐阅读
- java - 访问从 TabPane 返回的 Tab 内的 JavaFX TextArea
- javascript - ResizeObserver 一对多性能
- amazon-web-services - AWS-我有一个将 Lambda 函数与 API 网关集成的 CFT。我使用哪些资源将我的 API 网关连接到自定义 DNS 名称?
- java - 如何在android中制作自定义Arrays.asList
- java - java.util.StringTokenizer.nextToken 处的线程“main”java.util.NoSuchElementException 中的异常(未知来源)
- javascript - 为什么jQuery点击功能不起作用?
- regex - Htaccess - 将旧 URL 重定向到包含旧 URL 的新 URL(即子目录)
- python-2.7 - 为什么这两个看似等效的脚本运行时间明显不同?
- ios - 在多个 AlamoFire 请求后调用 self.Class 变量
- javascript - 平面列表不维护唯一列表?