【问题标题】:Spark GMM RDD automatically indexed?Spark GMM RDD自动索引?
【发布时间】:2016-04-25 18:27:59
【问题描述】:

我是 Spark GMM 的新手,但我对 GMM 的工作原理非常了解。所以我有一个问题希望有人能启发我。

我使用的代码是标准 Spark mllib GMM,我有一个名为 Input 的非索引 RDD,格式为 RDD(Value),我希望使用 GMM.predictSoft 对 Value 进行聚类:

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,所以我希望输出结果的索引会被打乱(即第一个结果可能不是第一个输入的结果)。令我惊讶的是,输出结果实际上与输入匹配。有人可以帮忙解释一下这总是正确的还是我的测试数据太小以至于我没有经历过洗牌?

【问题讨论】:

    标签: scala apache-spark apache-spark-mllib


    【解决方案1】:

    这里不需要洗牌。 predictSoft 是仅映射操作,其中模型的相关部分被简单地广播到工作节点。这意味着应该保留分区成员资格和每个分区的顺序。

    一般而言,shuffle 仅在 combine-by 转换(如 groupBycombineByKeyfoldByKeyreduceByKeyjoin 等)、分区和排序期间发生。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-01-05
      • 1970-01-01
      • 2017-10-22
      • 1970-01-01
      • 2016-01-20
      • 2015-10-31
      相关资源
      最近更新 更多