我有一个数据文件,我的任务是使用map还原从文件的每一行创建一个新的数据,因为文件中的数据是巨大的。这个文件包含:表达式(3-4 *7-4),我需要从这个表达式随机创建一个新表达式(3+4/7*4)。当我使用map还原实现任务时,我使用map进行更改,并将其简化为只接收来自映射程序的数据并对其进行排序,是否正确地使用map来完成主要任务?
发布于 2014-03-05 05:50:54
如果不需要对地图结果进行排序,则设置0减(通过以下方式)
job.setNumReduceTasks(0);(在您的驱动程序代码中),该作业仅称为map。
发布于 2014-03-05 02:03:21
你的实现是正确的。只要确保映射程序输出的键都是唯一的,如果您不希望任何恰好相同的表达式被组合在一起。
例如,由于您说您有一个巨大的数据文件,您可能会得到两个表达式,如3-4*7-4和3*4/7+4,并且这两个新表达式都是3+4*7-4。如果将表达式用作键,则对于这两个表达式,还原器只会被调用一次。如果您不希望这种情况发生,请确保对每个键使用唯一的编号。
https://stackoverflow.com/questions/22186089
复制相似问题