SQL DML:数据导入&导出

2021-09-10 11:13:58 浏览数 (1)

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表中时,最后一列数据因为多了’

0 人点赞