Spark SQL中Dataframe join操作含null值的列

2019-04-01

当在Spark SQL中对两个Dataframe使用join时,当作为连接的字段的值含有null值。由于null表示的含义是未知,既不知道有没有,在SQL中null值与任何其他值的比较(即使是null)永远不会为真。故在进行连接操作时null == null不为True,所以结果中不会出现该条记录,即左侧表格的这条记录对应右侧的值均为null。示例如下:

Read More

《快学Scala》——继承

2019-03-28

扩展类

Scala扩展类的方式和Java一样也是使用extends关键字。和Java一样,你在定义中给出子类需要而超类没有的字段和方法,或者重写超类的方法。和Java一样,你也可以将类声明为final,这样它就不能被扩展。你还可以将单个方法或字段申明为final,以确保他们不能被重写。
注: final 代表子类不能重载这个值, val 没有这个含义,只是做了运行时不能改变值得约束。

Read More

《快学Scala》——类

2019-03-28

Scala类最简单的形式看上去和Java或C++相似:
``` class Person { // val 修饰的属性,系统会自动生成get方法 val id:String = “1234” // 必须初始化字段 // var 修饰的属性,系统会自动生成get和set方法 var name:String = “” // private var 修饰的属性,系统会自动生成private修饰的get和set方法 // 相当于类的私有字段 private var gender:Int = 0 // private[this] 修饰的属性,系统不会生成get和set方法 // 只有当前对象才能访问 private[this] var age:Int = 0 }

Read More