【问题标题】:Generate multiple outputs with Hadoop Pig使用 Hadoop Pig 生成多个输出
【发布时间】:2016-08-01 15:40:27
【问题描述】:

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

我正在寻找的最后一步是:我想为每个唯一的id 编号 创建(存储)一个文件。所以这应该取决于一个小组步骤......但是,我不知道这是否可能(也许有一个自定义商店模块?)。

有什么想法吗?

谢谢

丹尼尔

【问题讨论】:

    标签: hadoop apache-pig


    【解决方案1】:

    记住 frail 所说的,MultiStorage,在 PiggyBank 中,似乎是您正在寻找的内容。

    【讨论】:

      【解决方案2】:

      为了获得一个输出(文件或任何东西),您需要将数据分配给一个变量,这就是它与STORE 一起工作的方式。如果 id 是有限且有限的,您可以一一 FILTER 它们,然后 STORE 它们。 (对于大约 20-25 的动作类型,我总是这样做)。

      但是,如果您非常需要获取每个唯一的 id 文件,请制作 2 个文件。 1 包含按 id 分组的全部数据,1 仅包含唯一 id。然后尝试生成 1 个(或更多,如果你有太多)过滤该 id 的猪脚本。但这是一个糟糕的解决方案。假设您将在一个猪脚本中对 10 个 id 进行分组,那么您将拥有(唯一 id 计数/10)个猪脚本来运行。

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

      编辑: 更好的解决方案是通过唯一 id 对大文件进行 GROUP 和 SORT 排序。然后,由于它已排序,您可以使用 3rd 方脚本轻松划分内容。

      【讨论】:

        猜你喜欢
        • 2011-07-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-11-15
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多