在猪中展平元组

时间:2014-06-27 22:51:42

标签: hadoop mapreduce apache-pig

我的数据格式如下:

(Id,Description)

1,xyz是东西。 Abc bcd&等等。

1,xyz是东西。 Abc xyz&等等。

2,abc是东西。 Abc xyz&等等。

我需要这种格式的输出:

我,Word

我试过了:

A = LOAD'./ data.txt'使用PigStorage(',')as(id:int,desc:chararray);

B = FOREACH GENERATE id,FLATTEN(STRSPLIT(desc,'[,?:; \ s]'));

这导致输出如下:

1,xyz,是,某事,Abc,bcd,所以,在

我想要的是:

1,xyz

1,是

1,某事

等等。

如何在Pig(不编写UDF)中执行此操作?

PS:还试过:

B = FOREACH GENERATE id,FLATTEN(datafu.pig.util.TransposeTupleToBag(STRSPLIT(desc,'[。&,?:; \ s]')));

1 个答案:

答案 0 :(得分:0)

你可以在猪中使用Tokenize。请找到以下答案。

这是输入文件

cat file1

1,xyz是

2,abc是

A =使用PigStorage(',');

加载'file1'

B = foreach A产生$ 0,FLATTEN(TOKENIZE($ 1));

转储B

(1,XYZ)

(1,是)

(1,东西)

(2,ABC)

(2,是)

(2,东西)

相关问题