我有两个不同的文件,每个文件包含不同的数据。我想对这些文件进行一些处理,然后根据匹配的键将数据合并在一起。在Hadoop中实现此功能的最佳方法是什么?我想某种方式创建两个映射器,每个处理器将处理一个文件,然后一个reducer来组合数据?我不确定这是否可行。有没有人对如何组合Hadoop中两个文件的数据有任何建议?
答案 0 :(得分:1)
有许多方法可以编写map / reduce作业(Hive,Pig,Cascading,Java等),但实际上连接是一个多输入作业,其中映射器以key_to_join_by和rest_of_data格式发出记录,而reducer执行实际连接(除非其中一个文件足够小,可以在内存中保存,您可以在映射器中进行连接)
您可以在Pig here
中查看如何执行此操作的示例答案 1 :(得分:0)
您能举例说明您的档案吗?目前尚不清楚你在问什么。你在谈论在Hadoop中加入连接吗?如果是这样,您将需要两个映射器类。或者您可以使用Hive来简化连接。请查看这两个可能解决方案的示例:Joins in Hadoop