假设我们有 N 个具有不同行数的输入文件。我们需要生成输出文件,使得每个输出文件恰好有 K 行(最后一个输出文件可以有
- 是否可以使用单个 MR 作业来完成此操作?
- 我们应该打开文件以便在reducer中显式写入。
- 输出中的记录应该被打乱。
thanks,
帕拉梅什
假设输入文件有 990 条记录,必须分为 9 个文件,每个文件有 100 条记录,最后一个文件有 90 条记录。共有10个文件
Use the NLine输入格式 https://hadoop.apache.org/docs/r1.2.1/api/org/apache/hadoop/mapred/lib/NLineInputFormat.html并设置mapred.line.input.format.linespermap
到 100。这样每个映射器将处理输入数据集中的 100 行。将reducer的数量设置为10,这是输出文件的数量。
在映射器中发出 1 到 10 之间的键(这是输出文件的数量),并将值作为输入记录发出。确保映射器发出的键在 1 到 10 之间平衡且不倾斜。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)