在Hadoop的同一映射函数中加载多个文件

在Hadoop的同一映射函数中加载多个文件,hadoop,Hadoop,我有两个数据集,一个是历史报价数据,另一个是历史交易数据。每天按符号分割数据。我的问题是如何在同一映射函数中加载两个相同符号的文件,例如,我想同时处理2011-01-27 IBM报价和同一日期的IBM交易文件。如何配置Hadoop来实现这一点?我读过关于MultlipleFileReader的文章,但这并不能让我们独立地一起加载特定的文件 谢谢 Ankush在地图函数中输出一个对,其中$date-$symbol是日期和符号连接在一起的复合键,其中$data是报价数据或交易数据。Hadoop将共享

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

谢谢 Ankush

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


reducer需要一些逻辑来区分报价数据和交易数据,这取决于您序列化数据的方式

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