0

我有一个大小为 1TB 的文件。我们需要找到文件中 4 列的不同值。例如,如果我们有 A、B、C、D、E、F 等列。其中,我们需要在 A 列中找到所有不同的值,并在 HDFS 中创建一个文件。B、C 和 D 也是如此。

注意:我们只需要对 4 列执行此操作,其余列则不需要。该文件共有 300 列。

我们需要为此编写 Map Reduce。什么是解决这个问题的有效方法。感谢你的帮助。谢谢。

4

2 回答 2

1

让映射器为您需要唯一值的每一列输出一条记录。因此,在您的示例中,地图将(使用单个输入记录)输出 4 条记录,键为 A、B、C、D。

然后,您可以在减速器中处理所有值。

根据您需要的详细信息,您可能希望使用如下所示的键:“A:A 列的值”

于 2013-02-24T07:02:23.593 回答
0

基本上你需要过滤掉重复的记录,这可以从 mapper、combiner 和 reducer 开始的几个步骤中完成。你也可以使用java Set。Mapper 可以输出 key='Column A' Value='complete record'。将键存储在 Set 中,如果 set 包含键不发出记录。在组合器中也可以这样做。可能你不需要减速器。还需要锻炼,因此 Set 不会通过清除某些特定大小来创建内存不足错误。

于 2013-02-25T15:46:50.567 回答