task是介于dagscheduler和taskscheduler中间的接口
在dagscheduler, 需要把dag中的每个stage的每个partitions封装成task
最终把taskset提交给taskscheduler
用于记录taskmetrics和在task中用到的callback
比如对于hadooprdd, task完成时需要close input stream
对应于result stage直接产生结果
对应于shufflemap stage, 产生的结果作为其他stage的输入
用于封装一个stage的所有的tasks, 以提交给taskscheduler