我有一个tar.gz
文件,如下所示:
myFile.tar.gz
|__ a.txt
|__ b.txt
|__ c.txt
我想开发pig脚本,以不同的方式处理每个子文件。我试图按文件名过滤:
S = LOAD '/user/admin/otarie/' USING PigStorage(';','-tagFile');
A = FILTER A BY $0 matches 'a.txt';
B = FILTER A BY $0 matches 'b.txt';
C = FILTER A BY $0 matches 'c.txt';
但是列$0
包含myFile.tar.gz
而不是子文件,有没有办法按子文件名过滤数据而不解压缩tar.gz
文件?
答案 0 :(得分:0)
PigStorage
doesn't recognize tar files。它识别gzip压缩,但之后,它只是从tar文件中读取原始数据,而文件信息只是另一条线进行处理(甚至不是正确的行;没有终止符,所以它会遇到每个文件的第一行)。
你不能像你想要的那样使用PigStorage的tar文件;单独解压并重新压缩它们应该可以正常工作。