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表中時,最後一列資料因為多了’