如何拆分在hive中具有$$的列值

时间:2018-06-08 07:22:50

标签: sql hive hiveql

这可能是一个愚蠢的问题,但我是新手,并尝试一些事情。

问题是,我在表中有一列其中包含 $$ 的值,如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;

两者都不起作用,它给出完整的字符串(原始)而没有分裂我错过了什么东西?

2 个答案:

答案 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;