删除Hive中的空格

时间:2018-10-03 11:08:38

标签: sql regex hive trim

我无法从Hive表中删除空格。

下面是输入:

select ColName from <TableName> where <Filtering Condition>;
EAIaIQobChMIibKXn4HY3QIVieNkCh2vxwlQEAQYByABEgIGRfD_BwE

select hex("EAIaIQobChMIibKXn4HY3QIVieNkCh2vxwlQEAQYByABEgIGRfD_BwE");
4541496149516F6243684D4969624B586E3448593351495669654E6B4368327678776C514541515942794142456749475266445F427745

以下是我尝试删除空白的方法:

select hex(ColName) from <TableName> where <Filtering Condition>;

select hex(trim(ColName)) from <TableName> 
where <Filtering Condition>;

select hex(REGEXP_REPLACE(ColName, '\\s+', '')) from <TableName>  where <Filtering Condition>;

select hex(translate(ColName, ' ', '')) from <TableName>  where <Filtering Condition>;

select hex(regexp_replace(trim(ColName),' +',' ')) from <TableName>  where <Filtering Condition>;

以下是所有可行查询的输出:

004500410049006100490051006F006200430068004D004900690062004B0058006E003400480059003300510049005600690065004E006B004300680032007600780077006C0051004500410051005900420079004100420045006700490047005200660044005F00420077004500

也在下面尝试过。但没有运气:

select regexp_replace(ColName,'\\s','');
select regexp_replace(ColName,'\\p{Blank}','');
select regexp_replace(ColName,'\\p{Space}','');
select regexp_replace(ColName,'\\p{javaWhitespace}','');

在大多数情况下,我只使用十六进制来标识空格。从上面的输出中,我清楚地了解到,由于所有字符的前缀都为00,因此所有查询都没有删除空格。

请问是否还有其他方法可以解决我的问题?

我的问题陈述是我试图在两个表之间连接此字符串。但是由于其中一张表中的空格,我没有找到匹配项。

感谢您对Advance的帮助。

0 个答案:

没有答案