我的这个文件包含Hadoop中的数据列表。我已经构建了一个简单的Pig脚本,它通过 id号来分析文件,依此类推......
我正在寻找的最后一步是:我想为每个唯一的 ID号创建(存储)一个文件。所以这应该取决于一个小组步骤...但是,我还没有理解这是否可能(可能有一个自定义存储模块?)。
有什么想法吗?
由于
丹尼尔
答案 0 :(得分:2)
虽然记住体弱者MultiStorage在PiggyBank中所说的内容,但似乎正是您所寻找的。 p>
答案 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。然后,由于它的排序,你可以很容易地用第三方脚本划分内容。