hive 特殊分隔符 0X1B

最近做测试遇到一个hive特殊分隔符的问题--oracle导出的数据文件分隔符符为0x1B导入的问题,0x1B是不可见字符,测试了很久才让hive识别到,

原因是hive指定分隔符除了直接写明确的分隔符时,不能识别十六进制的0x1B要转换成八进制的表示,且必须在前面加0

给的分隔符是十六进制 0x1B,对应十进制27,转换成八进制为33,故分隔符为033,注意,前面的0不能少,否则无法识别

指定分隔符语法为 :FIELDS TERMINATED BY '\033'

 

附样例:

样例数据

2012-10-310007010012610402170100***104020001个人通知***款利息支出6012012-10-311
2012-08-310007010012610601170100***6106010001应付活****存款息6012012-08-311
2012-08-310007010012610701170100***26107010001三个月***储蓄存款利息支出6012012-08-311

ue中查看,

复制到UE ctrl+H查看

 

建表语句

create external table T_CAS_ACCR_OC_BOOK
(
  set_date        DATE,
  oper_no         VARCHAR2(8),
  seqno           NUMBER(8),
  sub_seqno       NUMBER(8),
  act_seqno       NUMBER(8),
  trans_bran_code VARCHAR2(10),
  sub_code        VARCHAR2(8),
  cur_code        NUMBER(8),
  acct_no         VARCHAR2(32),
  acct_name       VARCHAR2(120),
  acct_type       NUMBER(5),
  cust_no         VARCHAR2(30),
  return_cause    VARCHAR2(60),
  chk_no          VARCHAR2(8),
  auth_no         VARCHAR2(8),
  flag            VARCHAR2(1),
  last_mod_date   DATE,
  acct_class      NUMBER(4)
)  
FIELDS TERMINATED BY '\033'
LOCATION '/tmp/t_cas_accr_oc_book';

 

转载于:https://www.cnblogs.com/felix-xwz/p/6771487.html

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值