我正在使用Hive并尝试清理可能包含多个不需要的数据的数据。想知道我是否可以在多个条件下使用单个regexp_replace或translate函数。
对于Eg。如果字符串是2000 Helen St - DO NOT USE
我需要替换/修剪- DO NOT USE
并将St
更改为Street
。
输出应为2000 Helen Street
。
类似地
3000 Cross St
应为3000 Cross Street
,4000 Mascot Dr
应为4000 Mascot Drive
大约有10个或更多这样的清理条件,输入字符串可以满足0或多个条件标准。这些条件可以设置为单个regexp_replace
吗?
答案 0 :(得分:0)
您可以轻松组合模板以删除子字符串或使用OR(|)替换相同的值。在其他情况下,请使用多个regexp_replace:
例如,如果您要删除“测试”'和' - 不要使用'并取代' Dr'与' Street':
hive> select regexp_replace(
regexp_replace('TEST 2000 Helen St - DO NOT USE',
'[- ]*DO NOT USE|TEST( *|$)',''),
'St([ ]*|$)','Street'
);
OK
2000 Helen Street
Time taken: 0.055 seconds, Fetched: 1 row(s)
删除' TEST'和' - 不要使用' - 这些组合成单个模板。 '圣'取而代之的是' Street' - 这是第二个regexp_replace。 当然这只是一个例子。