第二次出现定界符后配置单元regexp_extract

时间:2018-08-15 20:50:19

标签: hive

我们有一个Hive表列,其中的字符串用';'分隔并且我们需要在第二次出现';'

之后提取字符串
+-----------------+
| col1            |
+-----------------+
| a;b;c;d         |
| e;f; ;h         |
| i;j;k;l         |  
+-----------------+

Required output:

+-----------+
| col1      |
+-----------+
| c         |
| <null>    |
| k         |  
+-----------+

选择regexp_extract

2 个答案:

答案 0 :(得分:0)

;上分割字符串,这将返回一个值数组,从中可以得到索引2的元素。

select split(str,';')[2]
from tbl

答案 1 :(得分:0)

如果您希望像示例中那样将空字符串和仅空格字符串转换为NULL,则此宏可能会有用:

create temporary macro empty_to_null(s string) case when trim(s)!='' then s end;
select empty_to_null(split(col1,'\\;')[2]);