Spark GMM RDD 自动索引?
Spark GMM RDD automatically indexed?
我是 spark GMM 的新手,但我对 GMM 的工作原理非常了解。所以我有一个问题希望有人能赐教。
我使用的代码是标准的 Spark mllib GMM,我有一个名为 Input 的非索引 RDD,格式为 RDD(Value),我希望使用 GMM.predictSoft 对值进行聚类:
val Vectorize = Input.map(x=>(Vectors.dense(x)))
val Valuegmm = newGaussianMixture().setK(5).run(Vectorize)
val GMMgroup = Valuegmm.predictSoft(Vectorize).map(x=>x.indexOf(x.max))
问题是在predictSoft过程中,输入是非索引向量;因为它是一个 RDD,所以我希望输出结果的索引被打乱(即第一个结果可能不是第一个输入的结果)。令我惊讶的是,输出结果实际上与输入匹配。有人可以帮助解释这是 Always true 还是我的测试数据量太小以至于我没有经历过洗牌?
这里不需要shuffle。 predictSoft
是仅限地图的操作,其中模型的相关部分被简单地广播到工作节点。这意味着应该保留分区成员资格和每个分区的顺序。
一般来说,shuffle 仅在 combine-by 转换期间发生(如 groupBy
、combineByKey
、foldByKey
、reduceByKey
、join
等) ,分区和排序。
我是 spark GMM 的新手,但我对 GMM 的工作原理非常了解。所以我有一个问题希望有人能赐教。
我使用的代码是标准的 Spark mllib GMM,我有一个名为 Input 的非索引 RDD,格式为 RDD(Value),我希望使用 GMM.predictSoft 对值进行聚类:
val Vectorize = Input.map(x=>(Vectors.dense(x)))
val Valuegmm = newGaussianMixture().setK(5).run(Vectorize)
val GMMgroup = Valuegmm.predictSoft(Vectorize).map(x=>x.indexOf(x.max))
问题是在predictSoft过程中,输入是非索引向量;因为它是一个 RDD,所以我希望输出结果的索引被打乱(即第一个结果可能不是第一个输入的结果)。令我惊讶的是,输出结果实际上与输入匹配。有人可以帮助解释这是 Always true 还是我的测试数据量太小以至于我没有经历过洗牌?
这里不需要shuffle。 predictSoft
是仅限地图的操作,其中模型的相关部分被简单地广播到工作节点。这意味着应该保留分区成员资格和每个分区的顺序。
一般来说,shuffle 仅在 combine-by 转换期间发生(如 groupBy
、combineByKey
、foldByKey
、reduceByKey
、join
等) ,分区和排序。