大数据文件分隔符
2015-12-18 10:14
441 查看
背景: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 ‘’ 可以不指定
为解决此问题并避免出现内容带分隔符的可能情况,商定分隔符修改为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 ‘’ 可以不指定
[code] #建立 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;"
相关文章推荐
- HDFS分布式文件系统资源管理器开发总结
- Regex Failure - Bug Fixing #2
- 与时代接轨——普实ERP系统【AIO5】终身免费
- Choosing Symbol Pairs
- 第十六周项目(2):大数据集上排序算法性能的体验
- Training Very Deep Networks--Highway Networks
- 第十六周--项目6大数据集上排序算法性能的体验
- NSLayoutConstraint---AutoLayout的三种设置方式之—
- 第十六周上机实践—项目2—大数据集上排序算法性能的体验
- 第十六周 项目二 大数据集上排序算法性能的体验
- UVALive 6900 Road Repair(点分治)
- ubuntu多机版搭建storm环境笔记
- Daily Scrumming* 2015.12.17(Day 9)
- Installation error INSTALL_FAILED_VERSION_DOWNGRADE错误
- 【leetcode题解】【再看一遍】【86】【M】Contains Duplicate III
- kaldi increasing GMM components in the training procedure
- 报错: Domain=NSCocoaErrorDomain Code=3000 "未找到应用程序的“aps-environment”的权利字符串"
- 人工智能(AI)之朴素贝叶斯(NB)的基本实现
- 人工智能(AI)之KNN的基本实现
- 忘掉你的大数据,数据思维才最重要!