这可能是一个愚蠢的问题,但我是新手,并尝试一些事情。
问题是,我在表中有一列其中包含 $$ 的值,如ABC12 $$ FRG3 ,我将它导出到不同的蜂巢表,所以我只需要在给定的情况下只有 ABC12 的第一部分值,我尝试下面的方法
Select regexp_extract(id,'^(\\w.*)\\$${2}(\\w.*)$',1) as app from tempTable;
我也在hive中尝试过Split功能
select split(collection_id,'\\$$') as app from tempTable;
两者都不起作用,它给出完整的字符串(原始)而没有分裂我错过了什么东西?
答案 0 :(得分:1)
我想这是因为您在正则表达式中加倍了$
符号。
你应该试试
Select regexp_extract(id,'^(\\w.*)\\${2}(\\w.*)$',1) as app from tempTable;
答案 1 :(得分:0)
问题在于表达式 ' ^(\ w。)\ $$ {2}(\ w。)$ ' 从表达式中删除一个$符号。以下将解决问题。
Select regexp_extract(id,'^(\\w.*)\\${2}(\\w.*)$',1) as app from tempTable;