【发布时间】:2016-09-04 15:08:34
【问题描述】:
我有大量数据要对其执行聚类。问题是,我不希望对整个集合进行一个聚类,而是对每个用户进行一个聚类。基本上我会先做一个 groupby 用户 ID,然后运行 KMeans。
问题是,一旦您执行 groupby,任何映射都会在 spark 控制器上下文之外,因此任何创建 RDD 的尝试都会失败。在 mllib 中 Spark 的 KMeans 库需要一个 RDD(因此它可以并行化)。
我看到了两种解决方法,但我希望有更好的解决方案。
1) 手动遍历控制器中的所有数千个用户(当事情变大时可能是数百万个),并为每个用户运行 kmeans。
2) 在控制器中进行 groupby,然后在 map 中运行由外部库提供的非并行 kmeans。
请告诉我还有另一种方法,我宁愿拥有一切 ||尽可能。
【问题讨论】:
标签: apache-spark pyspark bigdata