gpt4 book ai didi

sql - 从配置单元表或 unix 中删除垃圾字符

转载 作者:可可西里 更新时间:2023-11-01 14:56:20 25 4
gpt4 key购买 nike

我们在 hive 中有如下表,我们在生成时从 hive 数据生成平面文件,我们发现数据中有垃圾字符,如下所示,我们在许多列中有许多字符,任何人都可以帮助我们从配置单元表或 unix 文件中删除那些垃圾字符?

ÿ,ä,í,ã

这里的问题是,相同的数据在加载到那里的数据库时需要发送到下游,它显示为双美元,但我们将代码设计为双美元作为列分隔符。

最佳答案

基本概念

hive> select regexp_replace('Hÿelloä íworlãd','[^a-zA-Z ]','');
OK
Hello world

演示

从整个表中删除不需要的字符并将其导出到文件。

create table t (i int,s1 string,s2 string);
insert into t values (1,'Hÿelloä','íworlãd'),(2,'ãGããood','Byÿe');

select * from t;

+---+---------+---------+
| i | s1 | s2 |
+---+---------+---------+
| 1 | Hÿelloä | íworlãd |
| 2 | ãGããood | Byÿe |
+---+---------+---------+

create external table t_ext (rec string) 
row format delimited
fields terminated by '0'
location '/user/hive/warehouse/t'
;

insert overwrite local directory '/tmp/t_ext'
select regexp_replace(regexp_replace(rec,'[^a-zA-Z0-9 \\01]',''),'\\x01','<--->')
from t_ext
;

! ls /tmp/t_ext
;
000000_0
! cat /tmp/t_ext/000000_0
;
1<--->Hello<--->world
2<--->Good<--->Bye

关于sql - 从配置单元表或 unix 中删除垃圾字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42788607/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com