BlockMatrix

pyspark.mllib.linalg.distributed。 BlockMatrix ( :pyspark.rdd.RDD(元組(元組(int,int],pyspark.mllib.linalg.Matrix]],rowsPerBlock:int,colsPerBlock:int,numRows:int=0,numCols:int=0 )

代表了一種分布式矩陣在本地塊矩陣。

參數
pyspark.RDD

子矩陣塊的一個抽樣((blockRowIndex blockColIndex)子矩陣),形成這種分布矩陣。如果多個相同的塊索引存在,操作,比如添加和繁殖的結果將是不可預測的。

rowsPerBlock int

組成每一塊的行數。塊形成最後一行不需要給定的行數。

colsPerBlock int

列數,每一塊。塊形成最後一列不需要給定的列數。

numRows int,可選

這個矩陣的行數。如果提供的值小於或等於零,將計算的行數numRows被調用。

numCols int,可選

這個矩陣的列數。如果提供的值小於或等於零,列數時計算numCols被調用。

方法

添加(其他)

增加了兩塊矩陣。

緩存()

緩存底層抽樣。

(其他)

離開這個BlockMatrix繁殖其他,另一個BlockMatrix。

numCols()

獲取或計算的關口。

numRows()

獲取或計算的行數。

堅持(storageLevel)

存在潛在的抽樣與指定的存儲水平。

減去(其他)

減去給定的塊矩陣其他從這一塊矩陣:——其他

toCoordinateMatrix()

這個矩陣轉換為一個CoordinateMatrix。

toIndexedRowMatrix()

這個矩陣轉換為一個IndexedRowMatrix。

toLocalMatrix()

收集分布式矩陣作為DenseMatrix司機。

轉置()

這個BlockMatrix轉置。

驗證()

驗證矩陣信息對矩陣數據塊(),如果發現任何錯誤拋出一個異常。

屬性

子矩陣塊的抽樣((blockRowIndex blockColIndex)、子矩陣),形成這種分布矩陣。

colsPerBlock

列數,每一塊。

numColBlocks

列數BlockMatrix塊的。

numRowBlocks

BlockMatrix的塊的行數。

rowsPerBlock

組成每一塊的行數。

方法的文檔

添加 ( 其他:pyspark.mllib.linalg.distributed.BlockMatrix )pyspark.mllib.linalg.distributed.BlockMatrix

增加了兩塊矩陣。矩陣必須有相同的大小和匹配rowsPerBlockcolsPerBlock值。如果一個被添加的子矩陣塊SparseMatrix,由此產生的子矩陣塊也將SparseMatrix,即使它被添加到DenseMatrix。如果兩個密集子矩陣塊,塊也將DenseMatrix的輸出。

例子

> > >dm1=矩陣密集的(3,2,(1,2,3,4,5,6])> > >dm2=矩陣密集的(3,2,(7,8,9,10,11,12])> > >sm=矩陣稀疏的(3,2,(0,1,3),(0,1,2),(7,11,12])> > >blocks1=sc並行化((((0,0),dm1),((1,0),dm2)))> > >blocks2=sc並行化((((0,0),dm1),((1,0),dm2)))> > >blocks3=sc並行化((((0,0),sm),((1,0),dm2)))> > >mat1=BlockMatrix(blocks1,3,2)> > >mat2=BlockMatrix(blocks2,3,2)> > >mat3=BlockMatrix(blocks3,3,2)
> > >mat1添加(mat2)toLocalMatrix()DenseMatrix (6 2 (2.0, 4.0, 6.0, 14.0, 16.0, 18.0, 8.0, 10.0, 12.0, 20.0, 22.0, 24.0), 0)
> > >mat1添加(mat3)toLocalMatrix()DenseMatrix (6 2 (8.0, 2.0, 3.0, 14.0, 16.0, 18.0, 4.0, 16.0, 18.0, 20.0, 22.0, 24.0), 0)
緩存 ( )pyspark.mllib.linalg.distributed.BlockMatrix

緩存底層抽樣。

( 其他:pyspark.mllib.linalg.distributed.BlockMatrix )pyspark.mllib.linalg.distributed.BlockMatrix

離開這個BlockMatrix繁殖其他,另一個BlockMatrix。的colsPerBlock這個矩陣必須相等rowsPerBlock其他。如果其他包含任何SparseMatrix塊,他們將不得不被轉換成DenseMatrix塊。輸出BlockMatrix隻會由DenseMatrix塊。這可能會導致一些性能問題,直到支持添加兩個稀疏矩陣相乘。

例子

> > >dm1=矩陣密集的(2,3,(1,2,3,4,5,6])> > >dm2=矩陣密集的(2,3,(7,8,9,10,11,12])> > >dm3=矩陣密集的(3,2,(1,2,3,4,5,6])> > >dm4=矩陣密集的(3,2,(7,8,9,10,11,12])> > >sm=矩陣稀疏的(3,2,(0,1,3),(0,1,2),(7,11,12])> > >blocks1=sc並行化((((0,0),dm1),((0,1),dm2)))> > >blocks2=sc並行化((((0,0),dm3),((1,0),dm4)))> > >blocks3=sc並行化((((0,0),sm),((1,0),dm4)))> > >mat1=BlockMatrix(blocks1,2,3)> > >mat2=BlockMatrix(blocks2,3,2)> > >mat3=BlockMatrix(blocks3,3,2)
> > >mat1(mat2)toLocalMatrix()DenseMatrix (2, 2, 242.0, 272.0, 350.0, 398.0, 0)
> > >mat1(mat3)toLocalMatrix()DenseMatrix (2, 2, 227.0, 258.0, 394.0, 450.0, 0)
numCols ( )→int

獲取或計算的關口。

例子

> > >=sc並行化((((0,0),矩陣密集的(3,2,(1,2,3,4,5,6))),((1,0),矩陣密集的(3,2,(7,8,9,10,11,12)))))
> > >=BlockMatrix(,3,2)> > >打印(numCols())2
> > >=BlockMatrix(,3,2,7,6)> > >打印(numCols())6
numRows ( )→int

獲取或計算的行數。

例子

> > >=sc並行化((((0,0),矩陣密集的(3,2,(1,2,3,4,5,6))),((1,0),矩陣密集的(3,2,(7,8,9,10,11,12)))))
> > >=BlockMatrix(,3,2)> > >打印(numRows())6
> > >=BlockMatrix(,3,2,7,6)> > >打印(numRows())7
堅持 ( storageLevel:pyspark.storagelevel.StorageLevel )pyspark.mllib.linalg.distributed.BlockMatrix

存在潛在的抽樣與指定的存儲水平。

減去 ( 其他:pyspark.mllib.linalg.distributed.BlockMatrix )pyspark.mllib.linalg.distributed.BlockMatrix

減去給定的塊矩陣其他從這一塊矩陣:——其他。矩陣必須有相同的大小和匹配rowsPerBlockcolsPerBlock值。如果其中一個的子矩陣塊被減去SparseMatrix,由此產生的子矩陣塊也將SparseMatrix,即使它被從DenseMatrix減去。如果兩個密集子矩陣塊減去,輸出塊也將DenseMatrix。

例子

> > >dm1=矩陣密集的(3,2,(3,1,5,4,6,2])> > >dm2=矩陣密集的(3,2,(7,8,9,10,11,12])> > >sm=矩陣稀疏的(3,2,(0,1,3),(0,1,2),(1,2,3])> > >blocks1=sc並行化((((0,0),dm1),((1,0),dm2)))> > >blocks2=sc並行化((((0,0),dm2),((1,0),dm1)))> > >blocks3=sc並行化((((0,0),sm),((1,0),dm2)))> > >mat1=BlockMatrix(blocks1,3,2)> > >mat2=BlockMatrix(blocks2,3,2)> > >mat3=BlockMatrix(blocks3,3,2)
> > >mat1減去(mat2)toLocalMatrix()DenseMatrix (6 2 (-4.0, -7.0, -4.0, 4.0, 7.0, 4.0, -6.0, -5.0, -10.0, 6.0, 5.0, 10.0), 0)
> > >mat2減去(mat3)toLocalMatrix()DenseMatrix (6 2 (6.0, 8.0, 9.0, -4.0, -7.0, -4.0, 10.0, 9.0, 9.0, -6.0, -5.0, -10.0), 0)
toCoordinateMatrix ( )pyspark.mllib.linalg.distributed.CoordinateMatrix

這個矩陣轉換為一個CoordinateMatrix。

例子

> > >=sc並行化((((0,0),矩陣密集的(1,2,(1,2))),((1,0),矩陣密集的(1,2,(7,8)))))> > >=BlockMatrix(,1,2)toCoordinateMatrix()> > >條目(3)[MatrixEntry (0, 0, 1.0), MatrixEntry (0、1、2.0), MatrixEntry (1 0 7.0)]
toIndexedRowMatrix ( )pyspark.mllib.linalg.distributed.IndexedRowMatrix

這個矩陣轉換為一個IndexedRowMatrix。

例子

> > >=sc並行化((((0,0),矩陣密集的(3,2,(1,2,3,4,5,6))),((1,0),矩陣密集的(3,2,(7,8,9,10,11,12)))))> > >=BlockMatrix(,3,2)toIndexedRowMatrix()
> > >#這BlockMatrix將有6個有效行,由於> > >#有兩個子矩陣塊堆疊,每3行。> > >#隨後IndexedRowMatrix還將有6行。> > >打印(numRows())6
> > >#這BlockMatrix 2列有效,由於> > >#有兩個子矩陣塊堆疊,每個都有2列。> > >#隨後IndexedRowMatrix還將有2列。> > >打印(numCols())2
toLocalMatrix ( )pyspark.mllib.linalg.Matrix

收集分布式矩陣作為DenseMatrix司機。

例子

> > >=sc並行化((((0,0),矩陣密集的(3,2,(1,2,3,4,5,6))),((1,0),矩陣密集的(3,2,(7,8,9,10,11,12)))))> > >=BlockMatrix(,3,2)toLocalMatrix()
> > >#這BlockMatrix將有6個有效行,由於> > >#有兩個子矩陣塊堆疊,每3行。> > >#隨後DenseMatrix還將有6行。> > >打印(numRows)6
> > >#這BlockMatrix 2列有效,由於> > >#有兩個子矩陣塊堆疊,每個都有2> > >#列。隨後DenseMatrix還將有2列。> > >打印(numCols)2
轉置 ( )pyspark.mllib.linalg.distributed.BlockMatrix

這個BlockMatrix轉置。返回一個新的BlockMatrix實例共享相同的底層數據。是一個懶惰的操作。

例子

> > >=sc並行化((((0,0),矩陣密集的(3,2,(1,2,3,4,5,6))),((1,0),矩陣密集的(3,2,(7,8,9,10,11,12)))))> > >=BlockMatrix(,3,2)
> > >mat_transposed=轉置()> > >mat_transposedtoLocalMatrix()DenseMatrix (2、6 (1.0, 4.0, 2.0, 5.0, 3.0, 6.0, 7.0, 10.0, 8.0, 11.0, 9.0, 12.0), 0)
驗證 ( )→沒有

驗證矩陣信息對矩陣數據塊(),如果發現任何錯誤拋出一個異常。

屬性的文檔

子矩陣塊的抽樣((blockRowIndex blockColIndex)、子矩陣),形成這種分布矩陣。

例子

> > >=BlockMatrix(sc並行化((((0,0),矩陣密集的(3,2,(1,2,3,4,5,6))),((1,0),矩陣密集的(3,2,(7,8,9,10,11,12))))),3,2)> > >=> > >第一個()((0,0),DenseMatrix (3 2 (1.0, 2.0, 3.0, 4.0, 5.0, 6.0), 0))
colsPerBlock

列數,每一塊。

例子

> > >=sc並行化((((0,0),矩陣密集的(3,2,(1,2,3,4,5,6))),((1,0),矩陣密集的(3,2,(7,8,9,10,11,12)))))> > >=BlockMatrix(,3,2)> > >colsPerBlock2
numColBlocks

列數BlockMatrix塊的。

例子

> > >=sc並行化((((0,0),矩陣密集的(3,2,(1,2,3,4,5,6))),((1,0),矩陣密集的(3,2,(7,8,9,10,11,12)))))> > >=BlockMatrix(,3,2)> > >numColBlocks1
numRowBlocks

BlockMatrix的塊的行數。

例子

> > >=sc並行化((((0,0),矩陣密集的(3,2,(1,2,3,4,5,6))),((1,0),矩陣密集的(3,2,(7,8,9,10,11,12)))))> > >=BlockMatrix(,3,2)> > >numRowBlocks2
rowsPerBlock

組成每一塊的行數。

例子

> > >=sc並行化((((0,0),矩陣密集的(3,2,(1,2,3,4,5,6))),((1,0),矩陣密集的(3,2,(7,8,9,10,11,12)))))> > >=BlockMatrix(,3,2)> > >rowsPerBlock3