使用k-means聚类时如何设置火花配置以减少混乱?

问题描述 投票:0回答:1

我知道有很多'如何调整你的Spark工作'等博客文章和帖子,但不幸的是我的目标是在pyspark(k-means)中使用内置的集群模块,所以像'use reduceByKey这样的建议而不是groupByKey'仍然没有帮助我,因为在调用聚类算法之后我无法真正控制代码中发生的事情,显然,它似乎消耗了大量的磁盘空间来进行混洗(运行在DataFrame,大小为25 Gb)。

有没有办法,比如我可以用来绕过这个问题的建议配置设置(执行程序内存等)?如果可能的话,我宁愿将tmp文件的已用磁盘空间保持在100-150 Gb以下。

总的来说,我很欣赏任何实际使用过mllib中的大数据聚类算法的人的任何信息(或者像我的一样,是大人物)。你能不能以某种方式避免广泛的洗牌,如果是这样的话怎么样?

谢谢!

apache-spark serialization pyspark apache-spark-sql apache-spark-mllib
1个回答
0
投票

你有足够的资源48核心和252 Gb所以如果你的数据帧名称是df然后使用k之前运行k意味着代码请缓存你的数据,你可以使用persist或缓存方法相同:

df.persist()
df.count()

要么

df.cache()
df.count()

我们需要执行一些操作来将数据帧缓存到内存中,之后你的洗牌肯定会减少,请让我知道这对你有用吗

© www.soinside.com 2019 - 2024. All rights reserved.