Spark性能优化【Stack Overflow】

一.异常情况

  Stack Overflow

二.异常分析

  之所以会产生Stack Overflow,原因是在Stack方法栈中方法的调用链条太长的原因导致的,一般情况有两种:

  1.过于深度的递归【常见】

  2.过于复杂的业务调用链条【少见】

三.案例分析

  例如一个sql中含有很多的条件组合,在Spark SQL中会通过Catalyst解析变成一棵树并最终变成RDD。在这个过程中可能把sql语句解析成很多的递归调用,此时就有可能产生Stack Overflow的情况。

四.解决方案

  对sql进行拆分,拆分成多个子查询,之后再组合这个查询结果!

猜你喜欢

转载自www.cnblogs.com/yszd/p/10491270.html