我是Hadoop和Mapreduce的新手。我需要使用mapreduce比较两个excel文件。我必须去mapreduce,因为这些文件的大小将非常大(> 10GB)。我的问题是如何从不同的映射器获取两个不同的输入文件并在Reducer中比较这两个文件。我必须将此应用程序转换为jar并在Amazon EMR中运行它。我无法在Web中找到适合此教程的教程。请提供一些想法来做到这一点。使用Hadoop Mapreduce比较两个Excel文件
0
A
回答
0
我认为分布式缓存在你的情况下会很有用。我没有使用大型文件的分布式缓存,但请探索并让我知道它是否适合你。
+0
感谢您的回复。我会尝试并让你知道。 –
0
根据您的回答我的评论在这里是如何,我认为它应该,如果你使用普通实现它来完成的map-reduce -
- 创建一个自定义InputFormat,读取Excel电子表格。
- 作为此操作的一部分,您需要RecordReader读取Excel电子表格并输出Cell位置(例如A1)作为关键字并将其内容作为Value输出。
- 一旦读取了文件,您需要使用Key(这是单元格位置)在两个数据集上进行内部连接。
- 加入后,您可以比较单元格的内容。
如果您查看Apache Pig或Cascading类型的抽象普通map-reduce的API,可能会有所帮助。
问候, 阿米特
我想你想按行Excel表格的行进行比较。这两个电子表格中是否有共同的列,它们将与两个电子表格中的行相关联? – Amit
Amit,实际上我需要比较两个excel文件中的每个单元格。我可以循环它。但在此之前,我需要读取excel文件并将其发送给reducer –
请不要急于对mapper或reducer这么快。比较每个单元格是否意味着第一个电子表格中的A1与第二个中的A1比较?或A1与另一个电子表格中的所有其他单元格? – Amit