使用 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
我有一个 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