Hadoop pig中的多存储文件内容

Hadoop pig中的多存储文件内容,hadoop,apache-pig,Hadoop,Apache Pig,我有一个目录,其中的文件带有一些邮件格式的日志(换行符分隔),我想在每一行中选择特定的位置,并将其用作目录/文件名 下面的代码只在文件中工作,并实现了我的预期,问题是子字符串现在位于新文件中,是否有方法在文件中存储B$1使用B$0作为文件名意味着保留原始文件的内容 REGISTER /lib/pig/piggybank.jar; A = LOAD '/raw/*' USING PigStorage('\n') AS (mytext:chararray); B = FOREACH A GENER

我有一个目录,其中的文件带有一些邮件格式的日志(换行符分隔),我想在每一行中选择特定的位置,并将其用作目录/文件名

下面的代码只在文件中工作,并实现了我的预期,问题是子字符串现在位于新文件中,是否有方法在文件中存储B$1使用B$0作为文件名意味着保留原始文件的内容

REGISTER /lib/pig/piggybank.jar;

A = LOAD '/raw/*' USING PigStorage('\n') AS (mytext:chararray);
B = FOREACH A GENERATE SUBSTRING(mytext,5,7), mytext;
STORE B INTO '/output' USING org.apache.pig.piggybank.storage.MultiStorage('/output', '0', 'none', ' ') ;

您是否希望
SUBSTRING(mytext,5,5)
在一个文件中,而
mytext
在另一个文件中?我希望SUBSTRING(mytext,5,5)是目录/文件名,mytext是内容,我发布的示例将SUBSTRING(mytext,5,5)作为目录/文件名,但内容是“SUBSTRING(mytext,5,5)mystring”这意味着元组是内容,而不仅仅是mytext尝试将
多存储('/output',0',none','',',',')
添加到最后一行的末尾(即,在最后一个参数中添加逗号),并尝试命名
子字符串(mytext,5,5)
一些东西。像
子字符串(mytext,5,5)一样作为文件名:chararray
尝试了这两种方法,但都没有帮助。逗号在文件中的两个字段之间添加了分隔符,其中第一个字段是子字符串(mytext,5,7)的内容,第二个字段是mytext,例如SA,这是文件名为SA/SA-0000的测试