我有一个 tar.gz
如下所示的文件:
myFile.tar.gz
|__ a.txt
|__ b.txt
|__ c.txt
我想开发pig脚本,以不同的方式处理3个子文件。我尝试按以下文件名筛选:
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条答案
按热度按时间nfeuvbwi1#
PigStorage
无法识别tar文件。它识别gzip压缩,但在那之后,它只是从tar文件中读取原始数据,而文件信息只是另一行进行处理(甚至不是一个正确的行;没有终止符,因此它将运行到每个文件的第一行)。你不能使用tar文件和pigstorage的方式,你试图;分别卸载和重新压缩,它们应该可以正常工作。