Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java MapReduce:如何从两个不同的数据集中获取块以使它们成对_Java_Mapreduce - Fatal编程技术网

Java MapReduce:如何从两个不同的数据集中获取块以使它们成对

Java MapReduce:如何从两个不同的数据集中获取块以使它们成对,java,mapreduce,Java,Mapreduce,我想通过以下操作创建映射函数: 步骤1: 我有两个数据集R和S。我想将两个数据集划分为n个大小相等的块,这可以通过将每个(R/n和S/n)记录放入一个块来完成 之后: 步骤2: 然后,在映射阶段结束时,将每个可能的块对(一个来自R,一个来自S)划分到一个bucket中,以便可以从Reduce函数中获取作为输入的块,并将一些id作为每个值对的键。 e、 g将是 因此,我的问题是: 如何实施步骤1?是否有我可以使用的实现功能 2.如何在第2步中具体引用这些数据集,以便从R中提取一个数据块,从S中提取

我想通过以下操作创建映射函数:

步骤1:

我有两个数据集
R
S
。我想将两个数据集划分为n个大小相等的块,这可以通过将每个(
R/n和S/n
)记录放入一个块来完成

之后:

步骤2: 然后,在映射阶段结束时,将每个可能的块对(一个来自R,一个来自S)划分到一个bucket中,以便可以从Reduce函数中获取作为输入的块,并将一些id作为每个值对的键。 e、 g将是

因此,我的问题是:
  • 如何实施步骤1?是否有我可以使用的实现功能
  • 2.如何在第2步中具体引用这些数据集,以便从R中提取一个数据块,从S中提取一个数据块

    注:我主要是这样定义两个数据集:

     `FileInputFormat.setInputPaths(conf, new Path(args[0]), new Path(args[1]));`
    

    只要提供一个解决方案,我认为还有更好的解决方案

    正如我在hadoop-0.20.2中测试的那样,默认情况下,每个映射只读取一个文件。因此,只需为映射阶段添加一个计数器,并将计数器作为键输出,将数据的上下文作为值输出。 那么第二个问题就很简单了,只要用相同的键输出值就行了