2014-10-07 65 views
0

我正在將一堆文件從Azure存儲加載到豬中。 Pig對gzip有默認支持,所以如果文件擴展名是.gz,一切正常。將文件加載到豬並對其進行解壓縮

問題是,舊文件存儲與.zip擴展名(我有數百萬)。

有沒有辦法告訴豬加載文件並將.zip作爲gzip處理?

回答

0

我真的不知道一些其他的選擇也有,但你可以嘗試這樣的

  1. 寫bash腳本,將指定的zip文件轉換成GZ文件
  2. 負荷GZ文件的東西豬

只是一個文件的示例示例,您可能需要根據需要更改腳本。

input.zip 
1,john 
2,cena 
3,rock 
4,sam 

test.sh 
#!/bin/bash 
FILE_NAME=$(echo $1 | cut -d '.' -f1) 
unzip "$1" 
tar czf "$FILE_NAME.gz" "$FILE_NAME" 
pig -x local -param PIG_INPUT_FILE="$FILE_NAME.gz" -f myscript.pig 

myscript.pig 
A = LOAD '$PIG_INPUT_FILE' USING PigStorage(','); 
DUMP A; 

輸出:

$ ./test.sh input.zip 

(1,john) 
(2,cena) 
(3,rock) 
(4,sam) 

另一個可能的選擇是,你可能需要編寫一個UDF轉換拉鍊使用java.util.zip庫GZ並調用LoadFunc選項。我沒有嘗試這個選項,但如果你想,你可以試試看。

相關問題