在Hadoop中的相同地图功能中加载多个文件

时间:2011-01-28 12:00:44

标签: hadoop

我有两个数据集,一个是历史报价数据,另一个是历史交易数据。每个符号每天分割数据。我的问题是如何在同一个map函数中加载两个相同符号的文件,例如我想同时处理2011-01-27 IBM引号和同一日期的IBM交易文件。我如何配置Hadoop来执行此操作?我已经阅读了有关MultlipleFileReader的内容,但这并没有让我们将特定于加载的文件独立在一起。

由于 Ankush

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

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