天天看點

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