hive 特殊分隔符 0X1B

2022-09-12 08:15:10 字數 1473 閱讀 9745

最近做測試遇到乙個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';

Hive的列分隔符和行分隔符

在建立hive表時,預設行分隔符 a 列分隔符 n 這兩項也是可以設定的。在實際開發中,一般預設使用預設的分隔符,當然有些場景下也會自定義分隔符。spark hive use test db 建立外部表 create external table test tb user id bigint com...

hive實現多分隔符

一 測試外表 create external 外表標識 table tmp.deli tmp 0117 z1 string,z2 string partitioned by pt string comment yyyymm row format serde org.apache.hadoop.hiv...

hive的列分隔符和行分隔符的使用

目錄 一 hive中預設的分割符如下 二 分隔符的指定與使用 三 建好表之後更改字段分隔符 分隔符描述 n 行分隔符 a欄位分隔符 001 barray struct的元素間的分隔符,map的鍵值對與鍵值對間分隔符 002 cmap中鍵與值之間的 分隔符 003 hive中在建立表時,一般會根據匯入...