0

我有两个不同的文件,每个文件都包含不同的数据。我想对这些文件进行一些处理,然后根据匹配的键将数据合并在一起。在 Hadoop 中实现这一点的最佳方法是什么?我正在考虑以某种方式创建两个映射器,每个映射器处理一个文件,然后一个减速器来组合数据?我不确定这是否可能。有人对我如何在 Hadoop 中合并来自两个文件的数据有任何建议吗?

4

2 回答 2

1

有很多方法可以编写 map/reduce 作业(Hive、Pig、Cascading、Java 等),但本质上连接是一个多输入作业,其中映射器以 key_to_join_by 和 rest_of_data 格式发出记录,reducer 执行实际的连接(除非其中一个文件小到足以保存在内存中,您可以在映射器中进行连接)

您可以在此处查看如何在 Pig 中执行此操作的示例

于 2013-03-06T16:35:28.950 回答
0

你能举出你的文件的例子吗?目前尚不清楚您在问什么。您是在谈论在 Hadoop 中进行联接吗?如果是这样,您将需要两个映射器类。或者您可以使用 Hive,它使执行连接更容易。请查看这两种可能的解决方案的示例:加入 Hadoop

于 2013-03-06T14:30:46.170 回答