Apache pig PigLatin:按文件名筛选数据
我有一个Apache pig PigLatin:按文件名筛选数据,apache-pig,tar,Apache Pig,Tar,我有一个tar.gz文件,如下所示: myFile.tar.gz |__ a.txt |__ b.txt |__ c.txt 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'; 我想开发p
tar.gz
文件,如下所示:
myFile.tar.gz
|__ a.txt
|__ b.txt
|__ c.txt
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';
我想开发pig脚本,以不同的方式处理3个子文件。我尝试按文件名进行筛选,如下所示:
myFile.tar.gz
|__ a.txt
|__ b.txt
|__ c.txt
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
文件的情况下按子文件名筛选数据?。它可以识别gzip压缩,但在这之后,它只是从tar文件中读取原始数据,文件信息只是另一行进行处理(甚至不是正确的行;没有终止符,因此它将运行到每个文件的第一行)
您不能以您尝试的方式将tar文件与pig存储一起使用;分别卸载和重新压缩,它们应该可以正常工作