【发布时间】:2015-11-19 02:11:27
【问题描述】:
我知道在 Spark SparseVector 中通常不应该有任何零元素,因为它是默认值 (0.0),但在我使用以下代码创建 SparseVector 的情况下:
In : Vectors.sparse(5, [0, 1, 3, 5], [0.0, 1, 2, 0.0])
Out: SparseVector(5, {0: 0.0, 1: 1.0, 3: 2.0, 5: 0.0})
然后我可以有一个包含零个元素的SparseVector。
我的问题是如何将可以用默认值表示的零元素从上面删除到下面的SparseVector 中,如下所示:
SparseVector(5, {1: 1.0, 3: 2.0})
此外,SparseVector 中的零元素是否占用任何空间?或者它实际上也在 SparseVector 实现中用默认值表示?
【问题讨论】:
-
关于为什么我创建这样一个带有零的
SparseVector:源数据(一个数组的字典,通过扔掉它的所有键)包含许多零,我无法弄清楚它的零的位置并同时保持其索引不变)
标签: python apache-spark apache-spark-sql pyspark apache-spark-mllib