替换配置单元中列中的特定垃圾字符

eyh26e7m  于 2021-06-01  发布在  Hadoop
关注(0)|答案(1)|浏览(303)

我有一个问题,在配置单元表中加载的列之一包含垃圾字符( "~ )在以实际值为后缀的列中( ABC ). 所以这个列的实际值是( ABC"~ ).
此列可以有(或任何此类字符串)或null。这个表很大,更新不是一个选项。
我想到了一个解决方案,即创建一个临时表,其中该列包含( ABC )或null,因此要删除此垃圾字符( "~ )在将数据从原始表复制到此临时表时完全执行。
有人帮我把这些垃圾拿走吗?我尝试使用regexp函数,但没有成功。有什么建议吗?

4c8rllxm

4c8rllxm1#

我没有正确使用regexp;是我的错。
最初加载到表中的数据在列的值上附加了额外的字符。例如:如果列的实际值为 Adf452 ,则单元格中包含的数据 Adf452"~ .
因此,我将数据加载到一个临时表中,如下所示:

insert overwrite table tempTable select colA, colB, colC, regexp_replace(colC,"\"~",""), partitionedCol from origTable;

这只需将数据加载到tentable中,而不需要那些垃圾字符。

相关问题