hive 特殊分隔符 0X1B

最近作測試遇到一個hive特殊分隔符的問題--oracle導出的數據文件分隔符符爲0x1B導入的問題,0x1B是不可見字符,測試了好久才讓hive識別到,oracle

緣由是hive指定分隔符除了直接寫明確的分隔符時,不能識別十六進制的0x1B要轉換成八進制的表示,且必須在前面加0測試

給的分隔符是十六進制 0x1B,對應十進制27,轉換成八進制爲33,故分隔符爲033,注意,前面的0不能少,不然沒法識別spa

指定分隔符語法爲 :FIELDS TERMINATED BY '\033'code

 

附樣例:blog

樣例數據table

2012-10-310007010012610402170100***104020001我的通知***款利息支出6012012-10-311
2012-08-310007010012610601170100***6106010001應付活****存款息6012012-08-311
2012-08-310007010012610701170100***26107010001三個月***儲蓄存款利息支出6012012-08-311ast

ue中查看,class

複製到UE ctrl+H查看date

 

建表語句語法

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';

相關文章
相關標籤/搜索