【发布时间】:2011-01-28 12:00:44
【问题描述】:
我有两个数据集,一个是历史报价数据,另一个是历史交易数据。数据每天按符号拆分。我的问题是如何在同一个映射函数中加载两个相同符号的文件,例如我想同时处理 2011-01-27 IBM 报价和同一日期 IBM 交易文件。我如何配置 Hadoop 来做到这一点?我已经阅读了有关 MultlipleFileReader 的信息,但这并不能让我们独立地一起加载特定文件。
谢谢 安库什
【问题讨论】:
标签: hadoop
我有两个数据集,一个是历史报价数据,另一个是历史交易数据。数据每天按符号拆分。我的问题是如何在同一个映射函数中加载两个相同符号的文件,例如我想同时处理 2011-01-27 IBM 报价和同一日期 IBM 交易文件。我如何配置 Hadoop 来做到这一点?我已经阅读了有关 MultlipleFileReader 的信息,但这并不能让我们独立地一起加载特定文件。
谢谢 安库什
【问题讨论】:
标签: hadoop
在您的 map 函数中输出一个 <$date-$symbol, $data> 对,其中 $date-$symbol 是一个复合键,其中日期和符号连接在一起,其中 $data 是报价数据或交易数据。 Hadoop 会将共享相同密钥的所有对组合在一起,您可以在 reduce() 函数中处理数据。
reducer 需要一些逻辑来区分报价数据或交易数据,具体取决于您如何序列化该数据。
【讨论】:
虽然您可以按照上面定义的方式进行操作,但您也可以使用两个数据集中的文件名称创建文本文件 - 并将其用作作业的输入。您可以通过扫描 HDFS 树来自动构建它。此解决方案的主要缺点是您无法享受数据本地化 - 因此大部分数据将通过网络传输。
【讨论】: