scala - 在 Spark 2.4 中做基本的线性代数
问题描述
Spark 2.4 是否具有支持基本线性代数运算(如点积、范数、矩阵和向量乘法)的 Vector 和 Matrix 类?我在 Vector、DenseVector 或 RowMatrix 等类中找不到任何线性代数支持。
旧版本的 Spark 有 org.jblas.DoubleMatrix,但在 Spark 2.4 中不存在,我找不到他们用什么替换它。
我在哪里可以找到 spark 2.4 中的线性代数示例?
我不需要 RDD 来满足我当前的需求(余弦相似度)。
解决方案
我发现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
推荐阅读
- javascript - Angularjs 和 Angular 8 混合并执行代码微细化得到错误:无法解析 xxx-service 的所有参数
- google-cloud-platform - GCE 中共享 Docker 卷的等价物是什么?
- python - 在没有循环的python中重复应用函数
- javascript - 如何使用递归返回 N 个硬币翻转的所有组合?
- python - 我正在使用 python 3.8 并且 webbrowser 没有打开一个 url
- android - 我可以在 Kotlin 中使用 map 而不是 switchMap 吗?
- typescript - 如何在 TypeScript 4.0 中将命名元组转换为未命名元组?
- amazon-web-services - 如何在 jenkins 管道 groovy 脚本中将变量插入到 sh aws 命令?
- c# - 访问 OAuth2 API 的 Azure 函数
- sqlite - SQLITE3中如何保证singlge VIEW的子查询执行顺序?