首页 > 解决方案 > 是否可以通过使用 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;

标签: hivehiveql

解决方案


您可以在问题中使用 substring_index 来提取第一个和最后一个元素,但如果您需要提取所有元素,或者第二个、第三个等,拆分更好:

split("MainProblem@Detail1@Detail2",'@')[0] --returns MainProblem
split("MainProblem@Detail1@Detail2",'@')[1] --returns Detail1
split("MainProblem@Detail1@Detail2",'@')[2] --returns Detail2

推荐阅读