我想加入两个RDD,每个占用10 GB的内存。但是我拥有的群集内存只有15 GB。是否有可能以某种方式优化代码,以便我们可以加入这些RDD?
我想到了将RDD保留在DISK中,但似乎不起作用。 有什么优化技术可以用来解决此类问题?
答案 0 :(得分:1)
集群没有比数据集更多的内存不是必要条件。但是,这有助于提高性能。
如果只有一个联接,则坚持DISK_ONLY不会有帮助。如果您要进行多个联接,则需要保留并计数以强制进行DAG评估。
无论如何,最好的方法是增加数据集分区和shuflle分区(默认为200)。
spark.sql.shuffle.partitions=5000
然后加入。