首页 > 解决方案 > 在 Spark 2.4 中做基本的线性代数

问题描述

Spark 2.4 是否具有支持基本线性代数运算(如点积、范数、矩阵和向量乘法)的 Vector 和 Matrix 类?我在 Vector、DenseVector 或 RowMatrix 等类中找不到任何线性代数支持。

旧版本的 Spark 有 org.jblas.DoubleMatrix,但在 Spark 2.4 中不存在,我找不到他们用什么替换它。

我在哪里可以找到 spark 2.4 中的线性代数示例?

我不需要 RDD 来满足我当前的需求(余弦相似度)。

标签: scalaapache-sparklinear-algebra

解决方案


发现JBlas 由于许可证不兼容而被删除并替换为netlib-java。您可能想研究一下,这是低级 BLAS、LAPACK 和 ARPACK 的包装器。

MLLib 具有密集和稀疏向量/矩阵的功能,它们基于 RDD:(我知道您正在寻找低级实现)

对于向量和矩阵,您可以使用:org.apache.spark.mllib.linalg.{Vector, Vectors, Matrix, Matrices} 这些支持密集和稀疏向量和矩阵。

RowMatrix 将是:org.apache.spark.mllib.linalg.distributed.RowMatrix

可以参考文档:https ://spark.apache.org/docs/latest/mllib-data-types.html

实际上,您可以在 MLlib 存储库中找到余弦相似度实现:https ://github.com/apache/spark/blob/master/examples/src/main/scala/org/apache/spark/examples/mllib/CosineSimilarity .scala


推荐阅读