周末开始紧张筹备啦
整了一个干净的mac电脑
从0装一遍spark sql源码环境
重新走一遍流程,写个最新的文档,给群里的小伙伴用
这次分享用的是git上最新的spark branch3.2
有同学不会scala,从网上找了免费的scala视频,链接已经放在了知识星球的置顶帖,下周要跟的同学,得提前看看
其实还好啦,我也不懂scala,俺是边看spark源码边学的scala,现在回想一下,spark sql源码中用的多且相对难理解的用法有下面几个:
1、偏函数
比如:transformUp、transformDown
2、柯里化
比如:ParseDriver中的parse方法
3、case模式匹配
用的最多,解析规则、优化器中会经常用到
4、case类
LogicalPlan、SparkPlan都是case类
5、product类
TreeNode继承product类,通过Product类中的方法(productArity、productElement、productIterator)来操纵TreeNode实现类的参数
6、scala隐式转换
比如:AstBuilder导入ParserUtils
7、foldLeft
规则执行器RuleExecutor
大家在学习scala时,重点关注一下就ok!
写文章时,刚刚看到源码编译成功啦
emmm...... 下周开怼,有点激动~~