即使数据量很小,spark仍报total size of serialized results is bigger than spark.driver.maxResultSize

今天遇到spark碰到了一个报错,觉得比较奇怪,如下:


image.png
  1. 可以看出实际input的数据量相当小。
  2. 但却会报total size of serialized results of xx tasks is bigger 的异常。
  3. 通常看到这个错,一般是数据倾斜导致的,但这个场景明显不是。

当然,我是因为默认使用了一个特别大的parallism和partition的配置所以才暴露了这个问题。

经过搜索,这个在spark是提过issue的。
附上链接: SPARK-12837
看这个issue的留言,这个bug似乎没有完全修好。

如果使用的是有这个问题的spark版本,可以尝试如下workaround:

  1. 如果确实需要比较大的并行度或分区。
--conf spark.driver.maxResultSize=0
--driver-memory 10g
  1. 如果数据就那么点,自己又配了很大的并行度或partition,调小它吧。

你可能感兴趣的:(即使数据量很小,spark仍报total size of serialized results is bigger than spark.driver.maxResultSize)