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 #取消显示隐藏字符