我有两个数据集,一个是历史报价数据,另一个是历史交易数据。每个符号每天分割数据。我的问题是如何在同一个map函数中加载两个相同符号的文件,例如我想同时处理2011-01-27 IBM引号和同一日期的IBM交易文件。我如何配置Hadoop来执行此操作?我已经阅读了有关MultlipleFileReader的内容,但这并没有让我们将特定于加载的文件独立在一起。
由于 Ankush
答案 0 :(得分:1)
在地图函数中输出<$date-$symbol, $data>
对,其中$date-$symbol
是复合键,日期和符号连接在一起,$data
是引号数据或交易数据。 Hadoop将所有共享相同密钥的对组合在一起,您可以在reduce()函数中处理数据。
reducer需要一些逻辑来区分报价数据或交易数据,具体取决于您如何序列化该数据。
答案 1 :(得分:0)
虽然您可以按照上面定义的方式进行操作,但您也可以使用两个数据集中的文件名创建文本文件,并将其用作作业的输入。您可以通过扫描HDFS树自动构建它。此解决方案的主要缺点是您不会享受数据本地化 - 因此大多数数据将通过网络传输。