记录大数据学习之路。
宗旨:在实践中学习。
拿到一个完整的项目,让项目代码变成你认为最好的样子,然后你就成为了King。
熟悉Scala语言
https://docs.scala-lang.org/zh-cn/tour/tour-of-scala.html
- 语法初级了解
- scala编码规范:
- 语法高级使用
1.scala中函数和方法的区别
函数是一条语句:由参数+函数体组成
1 | val addOne = (x: Int) => x + 1 |
方法:由def定义
1 | def add(x: Int, y: Int): Int = x + y |
object:
- 单例
- 静态
提取器对象:
List.tail 方法返回的是:
for循环里的yield操作是什么原理
scala的协变和逆变,java不支持。
类型上下界: :<
, >:
.
内部类和java不一样的地方,内部类是不一样的实例。OuterClass#InnerClass
注意: 抽象类型、复合类型、自类型的定义和区别。
什么叫隐式参数?
隐式转换没懂: TODO
注意传值参数和传名参数的不同。
常用注解: @deprecate, @tailrec(什么是尾递归?), @inline
.
注意: java定义的注解在java和scala中使用的差别, 关于默认值和明确表示
导包:
- 如何设置别名:
import users.{UserInfo => UI}
- scala 可以在任何地方导包
- 从根包导入:
import _root_.users._
.
spark
接着就可以开始拿spark练手了,一方面是熟悉scala语言,一方面学习spark。
spark-shell使用: https://spark.apache.org/docs/latest/quick-start.html
scala版本问题导致的运行失败,需要在
SPARK_HOME/jars
下查看spark需要的scala版本,然后编译时使用相应的scala版本:blog