Spark/Scala 实践(分享)

来自于编码、Code Review、同事讨论的一些思考总结,详见此附件 spark_scala_practices-xinyanlu

附每页标题摘要:

简洁代码(使用 implicit parameter)
简洁代码(使用 implicit class)
代码简洁(使用 apply)
代码简洁(少写括号)
代码简洁(多用简写)

多用 val,尽量避免用 var
样例:使用 val 替代 var

不使用 getXx / setXx 操作属性
使用 package object
使用 Option,不要自定义错误符
使用 lazy val

需要抛异常的时候就坚决抛异常
善用 Intellij Idea 和 scalafmt 插件

用模式匹配来注释 RDD 里的元组
写数据之前,先删 HDFS 目录
选择 Persist RDD 的 StorageLevel
大胆使用 groupByKey

减少需要输入的命令行参数
样例:使用 TypeSafe 的 Config Library
不要随意新增第三方库依赖