Table of Contents
特殊字符
以下這些字符是可以在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 #取消顯示隱藏字符