我是 Spark 新手,无法找到明确的答案:当缓存的数据不适合内存时会发生什么?
我在很多地方发现,如果 RDD 不适合内存,某些分区将不会被缓存,并且会在每次需要时动态重新计算。
例如:假设创建了 500 个分区,并假设 200 个分区没有缓存,那么我们必须通过重新评估 RDD 来重新计算剩余的 200 个分区。
如果是这种情况,那么 OOM 错误本不应该发生,但它却发生了。原因是什么?
非常感谢详细的解释。提前致谢
打乱数据的spark sql聚合操作,即spark.sql.shuffle.partitions 200(默认情况下)。当 shuffle 分区大于 200 时,性能会发生什么变化。
当分区数量大于 2000 时,Spark 使用不同的数据结构进行随机簿记。因此,如果分区数量接近 2000,则将其增加到 2000 以上。
但我的问题是,当 shuffle 分区大于 200(假设为 300)时,会发生什么行为。