报错信息如下:
org.apache.spark.SparkException: Job aborted due to stage failure:
Serialized task 6:0 was 12518780 bytes which exceeds spark.akka.frameSize (10485760 bytes).
Consider using broadcast variables for large values.
原因:
该错误是由传输的序列化数据超过了当前设定的driver端同executor端通信的消息尺寸的最大值导致。
可通过配置spark.akka.frameSize参数解决(以M为默认单位,默认值为10M)。
该参数控制driver端同executor通信的消息尺寸的最大值。
当需要向driver端返回大尺寸结果,例如对大数据集执行collect()操作时,往往需要调整该参数。