我想用hadoop进行矩阵向量乘法。我现在有一个小的工作示例:只有一个输入文件包含矩阵的行,后面跟着它乘以的向量。因此,每个map-task都会获得一行和该单个文件中的向量。
现在我想要两个输入文件。一个文件应包含矩阵,另一个文件应包含Vector。但是我不能想到让映射器访问这两个文件的hadoop方法。
这里最好的方法是什么?
感谢您的帮助!
答案 0 :(得分:0)
最简单,最有效的解决方案是直接从HDFS(而不是Mapper
输入)将矢量读入map()
的内存中。据推测,它不是那么大,以至于它无法适应记忆。然后,map()
只按行显示矩阵数据。当您收到每一行时,将其与向量对齐以生成输出的一个元素。发出(index,value)
,然后在Reducer
中构建向量(如果需要)。