大数据文件分隔符

背景:DSG数据同步到hadoop平台,发现部分表中数据存在竖线分隔符(“|”),导致hadoop平台数据不准确。
为解决此问题并避免出现内容带分隔符的可能情况,商定分隔符修改为CtrlA(ascii是0x01 ) ,经测试在HDFS可用。


分隔符为CtrlA(ascii是0x01 ) 在vi的编辑模式下 Ctrl+V Ctrl+A 。windows cmd模式下 Ctrl+Q Ctrl+A

Hive默认用
‘\001’(Ctrl+A)作为字段(Fields)分隔符,
‘\002’(Ctrl+B)作为集合元素(Collections Items)分隔符,
‘\003’作为Map类型Key/Values分隔符。

所以shell中的脚本
FIELDS TERMINATED BY ‘’ 可以不指定


#建立 OFFER日表    fields terminated by '|' 要修改,默认的是'\001'(Ctrl+A),也可以不指定;
v_create_sql="use ztedb;
drop table if exists OFFER_${day_id};
CREATE TABLE  OFFER_${day_id}
(
OFFER_ID    BIGINT,
ATOM_ACTION_ID  BIGINT,
PARTY_ID    BIGINT,
OFFER_SPEC_ID   BIGINT,
OFFER_NBR   STRING,
AREA_ID INT,
MKT_ACTIVITY_ID BIGINT,
START_DT    DATE,
END_DT  DATE,
BSS_START_DT    DATE,
BSS_END_DT  DATE,
BILL_START_DT   DATE,
BILL_END_DT DATE,
STATUS_CD   STRING,
STATUS_DT   DATE,
CREATE_DT   DATE,
VERSION DATE,
EXT_PROD_OFFER_INST_ID  STRING,
EXT_SYSTEM  STRING

) ROW FORMAT DELIMITED
FIELDS TERMINATED BY ''
STORED AS TEXTFILE;"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小小工匠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值