【发布时间】:2015-06-02 07:13:36
【问题描述】:
- 我正在使用 Spark 1.2.0。
- 我的特征向量大约是 350 维
- 数据集大约有 24k 个向量
-
我下面描述的问题只发生在
kmeans||算法;我现在已经切换到kmeans-random,但是我想知道为什么kmeans||不起作用。
当我使用 k=100 调用 KMeans.train 时,在 Spark 执行了几次 collectAsMap 调用后,我观察到了这种 CPU 使用率差距。正如我在图片中用红色标记的那样,有 8 个核心,在这个 gap 期间,只有 1 个核心在工作,而其他 7 个处于静止状态。
如果我将 k 提高到 200,差距会显着增加。
我想知道为什么会有这个差距?如何避免?因为我的工作需要我用更大的数据集设置k=5000。以我目前的设置,工作永远不会结束......
我已经在 Windows 和 Linux(都是 64 位)环境中尝试了我的方法,并且我观察到了相同的行为。
你想要,我可以给你代码和示例数据。
【问题讨论】:
标签: apache-spark k-means