在Pig中扁平化元组



我有以下格式的数据:

(Id、描述)

1, xyz是某数。Abc &;等等。

1, xyz是某数。Abc xyz &等等。

2、ABC是某物。Abc xyz &等等。

我需要这样的输出格式:

Id、词

我试过了:

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

B = FOREACH生成id,平(STRSPLIT (desc,"[?:; s]")),

这将导致如下输出:

1, xyz, is, something, Abc, bcd, so, on

我要的是:

xyz

1,

1,

1,

等等. .

我如何在Pig中做到这一点(不写UDF)?

PS: Also tried:

B = FOREACH A生成id, FLATTEN(data .pig.util)。TransposeTupleToBag (STRSPLIT (desc"[。amp; ?:; s] ")));

您可以在pig中使用Tokenize。请看下面的答案。

这是输入文件

猫file1

1,xyz是某物

2、abc是什么

A = load 'file1' using PigStorage(',');

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

转储B

(1, xyz)

(1)

(1)

(abc)

(2)

(2)

相关内容

  • 没有找到相关文章