PigLatin:按文件名过滤数据

时间:2015-12-22 16:21:36

标签: apache-pig tar

我有一个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文件?

1 个答案:

答案 0 :(得分:0)

PigStorage doesn't recognize tar files。它识别gzip压缩,但之后,它只是从tar文件中读取原始数据,而文件信息只是另一条线进行处理(甚至不是正确的行;没有终止符,所以它会遇到每个文件的第一行)。

你不能像你想要的那样使用PigStorage的tar文件;单独解压并重新压缩它们应该可以正常工作。