HIVE:-
我有一列changeContext ==>“A345 | Fq * A | 2017-05-01 | 2017-05-01”(字符串),我需要在其中提取A345作为另一列。有什么建议吗?附言我已经尝试过regexp_extract(遇到顶点故障),因此任何其他解决方案都将是完美的。

最佳答案

with t as (select "A345|Fq*A|2017-05-01|2017-05-01" as changeContext)

select  substring_index(changeContext,'|',1)                    option_1
       ,split(changeContext,'\\|')[0]                           option_2
       ,substr(changeContext,1,instr(changeContext,'|')-1)      option_3
       ,regexp_extract(changeContext,'[^|]*',0)                 option_4
       ,regexp_replace(changeContext,'\\|.*','')                option_5

from    t
+----------+----------+----------+----------+----------+
| option_1 | option_2 | option_3 | option_4 | option_5 |
+----------+----------+----------+----------+----------+
| A345     | A345     | A345     | A345     | A345     |
+----------+----------+----------+----------+----------+

关于hadoop - HIVE分割线,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44457965/

10-10 07:15