HiveQL:从字符串列中删除前导空格

问题描述

我有一张看起来像这样的桌子。

ID | Salary| Name|
_________________________
 1 | 50000|  Lee

 2 | 60000|  Camile

 3 | 70000|  Luther

每个名称前面都有一个空格;如果我想从所有条目中删除该空间,该怎么办?我尝试使用regexp_replace,但是语法不正确。

到目前为止,我已经提出了这个建议,但是我不知道如何使它起作用。

CREATE EXTERNAL TABLE IF NOT EXISTS Emp(id string,salary int,name string)

ROW FORMAT DELIMITED FIELDS TERMINATED BY ':'

STORED AS TEXTFILE LOCATION '/user/xxx/employee/'

TBLPROPERTIES ('skip.header.line.count'='3');

AS SELECT name,REGEXP_REPLACE(name,' ')

FROM emp;

解决方法

您可以使用ltrim函数从字符串中删除所有结尾的空格。

select id,salary,ltrim(name) as name from your_table;

类似地,rtrim函数从字符串中删除所有前导空格。

select id,rtrim(name) as name from your_table;

trim函数将删除所有前导和尾随空格

select id,trim(name) as name from your_table;