用配置单元中的一个单元替换特定字符的多个单元
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|
+-------+
我有一个数据集,其中的值相同,除了分号的数量导致不同的记录。
例如,如果在一列中一条记录有 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|
+-------+