使用 apache pig 更改文本文件的格式

change the format of a text file with apache pig

我有一个 txt 文件,格式如下:

{ (word1),(word2),(word3),....,(wordn) }

这些词不在引号中。我想使用 apache pig 并将此文件的格式简单地更改为:

word1
word2
word3
wordn    

有什么方法可以用 apache pig 做到这一点吗?

你能试试这个吗?

输入

{ (word1),(word2),(word3),(wordn) }

PigScript1:

A = LOAD 'input' AS (mybag:{T:(line:chararray)});
B = FOREACH A GENERATE REPLACE(BagToString(mybag.line),'_',' ');
STORE B INTO 'output';

输出:(存储在output/part*文件中)

word1 word2 word3 wordn

更新:(如果您希望所有列都在一行中,则使用 Flatten 运算符)
PigScript2:

A = LOAD 'input' AS (mybag:{T:(line:chararray)});
B = FOREACH A GENERATE FLATTEN(mybag);
STORE B INTO 'output1';

输出:

word1
word2
word3
wordn