用配置单元中的一个单元替换特定字符的多个单元

replacing multiple units of specific character with one unit in hive

我有一个数据集,其中的值相同,除了分号的数量导致不同的记录。

例如,如果在一列中一条记录有 a;b;c 而另一条记录有 a;;b;c,这将在我的代码中禁用 distinct 函数。我希望这被视为重复记录;;需要替换为 ;

我们如何替换多个;单人;在配置单元数据集中的字符串中?

您可以使用 regexp_replace 中定义的 Hive UDFs

第一个参数是需要更改的字符串。所以你可以在你的 table 上调用它,比如:

with t as 
   (SELECT "a\;\;\;b\;\;c\;d" as col ) 
SELECT regexp_replace(t.col, "\;+", "\;") as col from t

这应该会给你输出

+-------+
|    col|
+-------+
|a;b;c;d|
+-------+