假设我在 HDFS 中有一个巨大的稀疏矩阵,matrixX
另一个在matrixY
,我想做一个巨大的矩阵乘法并写入matrixY
. 我可以从 Hadoop 中的两个不同 URI 中提取信息吗?我该怎么做呢?我见过的所有示例都有一个输入目录和一个输出目录。
问问题
20 次
1 回答
0
您可以从以下多个来源阅读:
MultipleInputs.addInputPath(jobConf, MultipleInputs.addInputPath(jobConf,
new Path(MatixX),
TextInputFormat.class,
ColumnReaderMapper.class);
MultipleInputs.addInputPath(jobConf,
new Path(MatirxY),
TextInputFormat.class,
RowReaderMapper.class);
假设你必须矩阵 A 和 B:
a11 a12 a13
a21 a22 a23
a31 a32 a33
b11 b12 b13
b21 b22 b23
b31 b32 b33
A * B = 总和(a 的行 * b 的列)
如何将矩阵 A 存储为主要行,将矩阵 b 存储为主要列。现在,您可以在下一个映射器中将键设置为 RowReader 中的行号和 Columnreader 中的列号,并将其发送到将进行求和并写入输出的同一个 reducer。您可以进行许多其他优化,但这应该是第一次开始。
于 2013-03-12T02:54:10.527 回答