piglatin:按文件名筛选数据

t9eec4r0  于 2021-06-24  发布在  Pig
关注(0)|答案(1)|浏览(350)

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

nfeuvbwi

nfeuvbwi1#

PigStorage 无法识别tar文件。它识别gzip压缩,但在那之后,它只是从tar文件中读取原始数据,而文件信息只是另一行进行处理(甚至不是一个正确的行;没有终止符,因此它将运行到每个文件的第一行)。
你不能使用tar文件和pigstorage的方式,你试图;分别卸载和重新压缩,它们应该可以正常工作。

相关问题