0
假設我在HDFS中有一個巨大的稀疏矩陣matrixX
,另一個是matrixY
,我想進行巨矩陣乘法並寫入matrixY
。我可以從Hadoop中的兩個不同的URI中抽取嗎?我該怎麼做呢?我見過的所有例子都有一個輸入目錄和一個輸出目錄。使用Hadoop從兩個URI中提取信息
假設我在HDFS中有一個巨大的稀疏矩陣matrixX
,另一個是matrixY
,我想進行巨矩陣乘法並寫入matrixY
。我可以從Hadoop中的兩個不同的URI中抽取嗎?我該怎麼做呢?我見過的所有例子都有一個輸入目錄和一個輸出目錄。使用Hadoop從兩個URI中提取信息
您可以從多個源讀取如下:
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 =求和(B的*列的行)
如何存儲矩陣A作爲行主要與矩陣B作爲列主要。現在,您可以在下一個映射器中將鍵設置爲RowReader中的行號和ColumnReader中的Column Number並將其發送到同一個Reducer,它將進行求和並寫入輸出。你可以做很多其他的優化,但這應該是第一個開始。