【问题标题】:Load Multiple files in same map function in Hadoop在 Hadoop 的同一个映射函数中加载多个文件
【发布时间】:2011-01-28 12:00:44
【问题描述】:

我有两个数据集,一个是历史报价数据,另一个是历史交易数据。数据每天按符号拆分。我的问题是如何在同一个映射函数中加载两个相同符号的文件,例如我想同时处理 2011-01-27 IBM 报价和同一日期 IBM 交易文件。我如何配置 Hadoop 来做到这一点?我已经阅读了有关 MultlipleFileReader 的信息,但这并不能让我们独立地一起加载特定文件。

谢谢 安库什

【问题讨论】:

    标签: hadoop


    【解决方案1】:

    在您的 map 函数中输出一个 <$date-$symbol, $data> 对,其中 $date-$symbol 是一个复合键,其中日期和符号连接在一起,其中 $data 是报价数据或交易数据。 Hadoop 会将共享相同密钥的所有对组合在一起,您可以在 reduce() 函数中处理数据。

    reducer 需要一些逻辑来区分报价数据或交易数据,具体取决于您如何序列化该数据。

    【讨论】:

      【解决方案2】:

      虽然您可以按照上面定义的方式进行操作,但您也可以使用两个数据集中的文件名称创建文本文件 - 并将其用作作业的输入。您可以通过扫描 HDFS 树来自动构建它。此解决方案的主要缺点是您无法享受数据本地化 - 因此大部分数据将通过网络传输。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-07-14
        • 2014-03-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-03-03
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多