我正在使用Spark的ALS推荐器实现工作项目,并且围绕如何处理规模进行了大量讨论。但不是因为产品目录中的项目数的事件数量。
我担心的是Spark -
对象在分解任务(~65,500)中可以处理的列数有一个硬限制。显然,ALS采用RowMatrix
:
RDD
但是,我无法在任何地方找到任何关于它是否在后端构建密集矩阵的讨论,因为我可能会因为>而遇到列限制。 65k项目。是否有关于Spark的ALS实施的实际限制的讨论或文档?
答案 0 :(得分:1)
基本上<appheader>
与此过程完全无关。 RowMatrix.computePrincipalComponents
不使用ml.ALS
数据结构。 mllib.linalg
使用自己的块状算法。
理论限制是标识符的范围(ml.ALS
或Int
取决于专业化),但我怀疑它是否曾经测试过这样的数据集。