0
我正在將一堆文件從Azure存儲加載到豬中。 Pig對gzip有默認支持,所以如果文件擴展名是.gz,一切正常。將文件加載到豬並對其進行解壓縮
問題是,舊文件存儲與.zip擴展名(我有數百萬)。
有沒有辦法告訴豬加載文件並將.zip作爲gzip處理?
我正在將一堆文件從Azure存儲加載到豬中。 Pig對gzip有默認支持,所以如果文件擴展名是.gz,一切正常。將文件加載到豬並對其進行解壓縮
問題是,舊文件存儲與.zip擴展名(我有數百萬)。
有沒有辦法告訴豬加載文件並將.zip作爲gzip處理?
我真的不知道一些其他的選擇也有,但你可以嘗試這樣的
只是一個文件的示例示例,您可能需要根據需要更改腳本。
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
選項。我沒有嘗試這個選項,但如果你想,你可以試試看。