天天看点

SQL DML:数据导入&导出SQL DML:数据导入&导出

SQL DML:数据导入&导出

数据导入

数据预处理

将文件导入到Hive中,需要文件编码格式为UTF-8,\n为换行符,否则就需要进行预处理。处理过程分为两部分:编码格式、换行符。

编码格式处理

对于中文字符,如果是ASCii码,或者其它编码,则在Hive表中无法正确显示。

首先可以使用file命令提前查看文件编码类型和换行符情况。

file $filename           

复制

如果编码不是UTF-8,则需要进行编码转换。转换方式可以在建表前,提前对文件进行转码处理;也可以不对文件进行处理,在表中指定文件编码格式。

对文件提前进行转码处理,可以使用iconv工具进行:

# iconv是转码工具,-f源编码格式,-t目标编码格式
iconv -f gbk -t utf-8 $sourceFile > $targetFile           

复制

如果不对文件进行提前的转码处理,可以在表中指定文件的编码格式:

ALTER TABLE <tableName> SET SERDEPROPERTIES('serialization'='GBK');           

复制

换行符处理

在不同操作系统中,文件默认的换行符会有所不同。Windows文件用\r\n换行,而Unix和Linux文件用\n换行。Windows文件直接导入到Hive表中时,最后一列数据因为多了’