В дополнение к хорошему отклику Даниэля Собрадо, spark 2.4 также поставляется с поддержкой Breeze Линейная алгебра Breeze Эта библиотека имеет преимущества, заключающиеся в том, что в матрицах по умолчанию используется мажорный порядок столбцов, такой как Matlab, но индексирование основано на 0, какNumpy.Breeze поддерживает индексирование и нарезку, функции линейной алгебры (Linear solve, transpose, Determinant, Inverse, Eigenvalues , Eigenvectors, Singular Value Decomposition)
и операции (Vector dot product, Elementwise addition, Shaped/Matrix multiplication, Elementwise multiplication, Elementwise max, Elementwise argmax), etc.
Следует отметить, что Breeze использует netlib-java для своих основных процедур линейной алгебры. Ниже приведен пример кода scala, который использует Breeze
import breeze.linalg.DenseVector
import com.github.fommil.netlib.BLAS
import org.slf4j.LoggerFactory
object Breeze1 {
def main(args:Array[String]): Unit = {
println("Init logging...")
System.setProperty(org.slf4j.impl.SimpleLogger.DEFAULT_LOG_LEVEL_KEY, "TRACE");
val log = LoggerFactory.getLogger("main")
log.trace("Starting...")
val b = BLAS.getInstance()
log.trace(s"BLAS = $b")
val v = DenseVector(1,2,3,4)
log.trace("Ending.")
}
}