Hive分隔符

Table of Contents

特殊字符

通過digraph輸入

測試數據

查看隱藏字符的方法

cat

vim


特殊字符

以下這些字符是可以在Hive中應用,並且DATAX也支持的:

char digraph hex dec official name Unicode
^@ NU 0x00 0 NULL (NUL)N \u0000
^A SH 0x01 1 START OF HEADING (SOH) \u0001
^B SX 0x02 2 START OF TEXT (STX) \u0002
^C EX 0x03 3 END OF TEXT (ETX) \u0003
^D ET 0x04 4 END OF TRANSMISSION (EOT) \u0004
^E EQ 0x05 5 ENQUIRY (ENQ) \u0005
^F AK 0x06 6 ACKNOWLEDGE (ACK) \u0006
^G BL 0x07 7 BELL (BEL) \u0007
^H BS 0x08 8 BACKSPACE (BS) \u0008
^I HT 0x09 9 CHARACTER TABULATION (HT) \u0009
^@ LF 0x0a 10 LINE FEED (LF) \u0010
^K VT 0x0b 11 LINE TABULATION (VT) \u0011
^L FF 0x0c 12 FORM FEED (FF) \u0012
^M CR 0x0d 13 CARRIAGE RETURN (CR) \u0013

注意:特殊符號中的^ 和鍵盤上的^ 字符是不一樣的。另外特殊符號中的^和後面跟的字符是一體的,也就是說,兩個字符是一個符號。

通過digraph輸入

Vim中顯然沒有什麼特殊字符選擇工具,但提供了兩種輸入特殊字符的方式:

  • 1、通過兩個字符來輸入一個特殊字符(digraph)。
  • 2、直接通過編碼值(ASCII或Unicode)輸入。

其中digraph是一種類似雙拼的方法,連續輸入兩個字符來表示一個特殊字符。需要先按下前導鍵<Ctrl-K>,例如在編輯模式下輸入:

<Ctrl-K>Rg

如上的輸入,將會出現®字符,其中"Rg"是該字符的digraph(雙拼)。

特殊字符表中的digraph列就是這些字符的雙拼輸入字符,輸入時注意大小寫,雙拼輸入是區分大小寫的。

在Windows中是無法輸入特殊字符的,可以使用Unicode碼進行輸入。

例如:要使用^A作爲分割字符可以這樣寫:

create external table city
(city_id string,city_name string ) 
row format 
delimited fields 
terminated by '\u0001' 
location 'hdfs://hadoop01:8090/test/city';

測試數據

建表語句:

create external table city
(city_id string,
city_name string,
pinyin string,
pingying2 string,
code string,
db_name string,
city_status string,
default_areas string,
yum_city_name string) 
row format 
delimited fields 
terminated by '\u0000' 
location 'hdfs://hadoop01:8090/test/city';

如上的代碼使用的^@字符作爲分隔符的。

以下是數據格式樣例:

將此文件直接傳到Linux服務器中,使用vim打開,可以發現,字段之間的分隔符如下:

Hive查詢出來的數據樣例:

這裏需要說一下,在特殊字符表中有兩個^@ 符號,經過測試,這兩個符號在作爲分隔符的時候是一樣的,可以認爲是一樣的。只是輸入的時候不一樣。

查看隱藏字符的方法

在Linux系統中,文本文件中是存在隱藏字符的,需要使用以下命令才能查看到:

cat

命令如下:

cat -A fileName

vim

使用vim進入編輯文件的命令模式,使用以下命令:

set list #顯示隱藏字符
set nolist #取消顯示隱藏字符
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章