SQL DML:数据导入&导出
数据导入
数据预处理
将文件导入到Hive中,需要文件编码格式为UTF-8,n为换行符,否则就需要进行预处理。处理过程分为两部分:编码格式、换行符。
编码格式处理
对于中文字符,如果是ASCii码,或者其它编码,则在Hive表中无法正确显示。
首先可以使用file命令提前查看文件编码类型和换行符情况。
代码语言:javascript复制file $filename
如果编码不是UTF-8,则需要进行编码转换。转换方式可以在建表前,提前对文件进行转码处理;也可以不对文件进行处理,在表中指定文件编码格式。
对文件提前进行转码处理,可以使用iconv工具进行:
代码语言:javascript复制# iconv是转码工具,-f源编码格式,-t目标编码格式
iconv -f gbk -t utf-8 $sourceFile > $targetFile
如果不对文件进行提前的转码处理,可以在表中指定文件的编码格式:
代码语言:javascript复制ALTER TABLE <tableName> SET SERDEPROPERTIES('serialization'='GBK');
换行符处理
在不同操作系统中,文件默认的换行符会有所不同。Windows文件用rn换行,而Unix和Linux文件用n换行。Windows文件直接导入到Hive表中时,最后一列数据因为多了’