簡體   English   中英

將文件加載到Pig中並解壓縮

[英]Loading files into pig and decompressing them

我正在將Azure存儲中的一堆文件加載到Pig中。 Pig對gzip具有默認支持,因此如果文件擴展名是.gz,則一切正常。

問題是較舊的文件以.zip擴展名存儲(我有數百萬個)。

有沒有辦法告訴Pig加載文件並將.zip視為gzip?

我真的不知道還有其他選項可用,但是您可以嘗試這樣的操作

  1. 編寫一個bash腳本,它將給定的zip文件轉換為gz文件
  2. 將gz文件加載到Pig中

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

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庫將zip轉換為gz並調用LoadFunc選項。 我沒有嘗試此選項,但是如果您願意,可以嘗試一下。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM