使用Hadoop Pig生成多个输出

时间:2011-03-11 11:52:30

标签: hadoop apache-pig

我的这个文件包含Hadoop中的数据列表。我已经构建了一个简单的Pig脚本,它通过 id号来分析文件,依此类推......

我正在寻找的最后一步是:我想为每个唯一的 ID号创建(存储)一个文件。所以这应该取决于一个小组步骤...但是,我还没有理解这是否可能(可能有一个自定义存储模块?)。

有什么想法吗?

由于

丹尼尔

2 个答案:

答案 0 :(得分:2)

虽然记住体弱者MultiStorage在PiggyBank中所说的内容,但似乎正是您所寻找的。

答案 1 :(得分:0)

获取输出(文件或任何内容),您需要将数据分配给变量,这就是它如何与STORE一起使用。如果id是有限且有限的,你可以逐个FILTER然后STORE。 (我总是这样做的行动类型大约是20-25)。

但是如果你需要严重获取每个唯一的id文件,那么制作2个文件。 1,其中的整个数据按ID分组,1只有唯一ID。然后尝试生成1(或更多,如果你有太多)猪脚本FILTER BY那个id。但这是一个糟糕的解决方案。假设您将猪脚本中的10个ID分组,您将拥有(唯一ID数/ 10)猪脚本。

请注意,Hdfs不擅长处理太多小文件。

修改 一个更好的解决方案是GROUP和SORT通过一个大文件的唯一ID。然后,由于它的排序,你可以很容易地用第三方脚本划分内容。