在pig中展平元组

z9ju0rcb  于 2021-06-03  发布在  Hadoop
关注(0)|答案(1)|浏览(419)

我有以下格式的数据:
(id,描述)
1,xyz是个东西。 bcd等。
1,xyz是个东西。 xyz等。
2、是一种东西。 xyz等。
我需要这种格式的输出:
身份证,字
我试过这个:
a=使用pigstorage(',')作为(id:int)加载“./data.txt”,desc:chararray);
b=foreach a生成id,展平(strsplit(desc,,[,?:)\s] '));
这将产生如下输出:
1,xyz,is,something,,bcd,等等
我想要的是:
1,xyz公司
1,是
1,什么的
等等等等。。
我怎样才能在pig中做到这一点(不写自定义项)?
ps:也尝试过:
b=foreach a generate id,flatten(datafu.pig.util.transposetupletobag(strsplit(desc,,[.&,,,,:)\s] '));

rhfm7lfc

rhfm7lfc1#

您可以在pig中使用tokenize。请找到下面的答案。
这是输入文件
cat文件1
1,xyz是个东西
2、是一种东西
a=使用pigstorage(',')加载“file1”;
b=foreach a生成$0,展平(tokenize($1));
卸载b
(1,xyz)
(1,是)
(1,某物)
(2,)
(2,is)
(2,差不多)

相关问题