Hadoop MapReduce:一行中有两个键,但如何实现?

Hadoop MapReduce:一行中有两个键,但如何实现?,hadoop,mapreduce,aggregate,aggregation,Hadoop,Mapreduce,Aggregate,Aggregation,我有csv文件,其中包含以分号分隔的记录。每行是一条记录。每一行包含一个图的边信息。这意味着一行看起来如下所示: 节点X;节点Y;五, 它被解释为节点x和y之间权重为5的边或链接。我的映射程序得到这个输入。现在我想要实现的是使用节点聚合信息 以下示例说明了我的场景: 节点X;节点Y;五, 节点X;节点_Z;十, 节点X;节点A;六十 节点Y;节点A;二十 那么节点的结果应该是: 节点X;75; 节点Y;25; 节点A;八十 我想收集所有不同的节点,并将它们与其他节点的权重之和作为权重 在我的映射

我有csv文件,其中包含以分号分隔的记录。每行是一条记录。每一行包含一个图的边信息。这意味着一行看起来如下所示:

节点X;节点Y;五,

它被解释为节点x和y之间权重为5的边或链接。我的映射程序得到这个输入。现在我想要实现的是使用节点聚合信息

以下示例说明了我的场景:

节点X;节点Y;五,

节点X;节点_Z;十,

节点X;节点A;六十

节点Y;节点A;二十

那么节点的结果应该是:

节点X;75; 节点Y;25; 节点A;八十

我想收集所有不同的节点,并将它们与其他节点的权重之和作为权重

在我的映射器中,我可以读取边缘信息:

节点X;节点A;六十

但是我怎么能用这条线为我的减速器做两把钥匙呢? 应该是这样的

context.write(Node_X,60);

context.write(Node_A,60);
我怎样才能做到这一点

谢谢

注意:边缘是无方向的

应该是这样的

context.write(Node_X,60)

context.write(节点A,60)

假设你在问之前没有试过,那就行了

应该是这样的

context.write(Node_X,60)

context.write(节点A,60)


假设你在问之前没有试过,那就行了。

你试过什么<代码>上下文.write(Node_X,60);context.write(节点A,60)是否可以在一个映射节中写入两次?我想它会覆盖上一个。如果它像这样工作,对我来说就像一个巨大的魅力。我现在就试试。你试过什么<代码>上下文.write(Node_X,60);context.write(节点A,60)是否可以在一个映射节中写入两次?我想它会覆盖上一个。如果它像这样工作,对我来说就像一个巨大的魅力。我现在就试试。试过了,按照你说的做。我直接想到它会覆盖第一个写操作。我是新手,学到了一些新东西。在我的例子中,获取边和节点的统计信息只需更改几行代码。Hadoop先生真是太棒了。试过了,它就像你说的那样工作。我直接想到它会覆盖第一个写操作。我是新手,学到了一些新东西。在我的例子中,获取边和节点的统计信息只需更改几行代码。Hadoop先生真是太棒了。