开发者学堂课程【大数据 Spark 2020版(知识精讲与实战演练)第三阶段:Column 对象_操作_别名和类型】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/690/detail/12080
Column 对象_操作_别名和类型
了解 column 对象的几种创建方式,这几种创建方式什么时候使用?其实这几种创建方式,其实并不重要,重要的是要去区分开,有两大类创建的。
第一大类为无绑定的,还有一类叫做有绑定的。在这两大类之间来进行选择。有一些场景必须用无绑定,有一些场景必须使用绑定,有绑定是四种创建方式,四种方式都一样,选任意一种都可以,有绑定也是一样的,它有两种方式,任选其一就行。
只需要选择自己熟悉的方式就可以,然后只需要区分什么时候该用无绑定,什么时候使用有绑定。选择自己喜欢的方式即可。
column 对象相关的一些操作,在操作当中,去说的就是别名和转换,其实是一个非常常见的操作.
别名的转换其实都是 as 算子,as 后面加上一个类型就是转换类。as 后面加上一个字符串就是别名。
打开 idea。创建出来这个方法,方法命名为叫做 def as():。
def as(): Unit ={
val ds :Dataset[Person]
=Seq(Person(“zhangsan”,15),person(“lisi”:,10)).
toDS() //引入数据集
//select name,count(age) as age from table group by name
ds.select(‘name.as(alias =”new_name”))
在结果当中就会出现一个 count age,原封不动的这样的一个列名,怎么改变这个 count age 列名?
可以 as 一个别名 age,使用 Dataset 的 API 能够完成这个 as 的操作。
‘name.as 这里面的点可以去掉。斯科拉当中调用对象的方式,加点儿也可以,不加点儿用空格。后面这个括弧也可以去掉。
参数可以没有括号,所以最后写为:
ds.select(cols =’name as ”new_name”).show
跟这个 SQL 语句有一点点像。这是创建别名环节。
ds,select(cols=‘age.as[Long]).show()
那么创建别名了解过了以后,就去看一看进行转换类型,都知道“zhangsan”,15里的15是一个 int 类型,但是其实读出来,有可能是一个scheme或者是一个 long,该怎么把它转成我想要的类型,在 ds 当中,假如说你 select:ds,select(cols=‘age),age 是int类型可以 as 一下进行转换,这种方式就被转成了一个 int 。
但是它本来就是 int ,所以转换为 long。但是呢,这个里面的 as 和前面这个 as 不太一样,这个 as[Long]里面的 as,使用泛写的形式,规定要转成哪个。前面是直接直接去起了一个别名,这点是有区别的。
接下来进行运行:
结果的第一部分叫做 new_name,第二部分,把这个 age 转成一个 long 型。
以上介绍两个知识点,第一个起别名,第二个转类型。