我无法从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的帮助。