Column 对象_操作_别名和类型 | 学习笔记

简介: 快速学习 Column 对象_操作_别名和类型

开发者学堂课程【大数据 Spark 2020版(知识精讲与实战演练)第三阶段Column 对象_操作_别名和类型】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/690/detail/12080


Column 对象_操作_别名和类型

 

了解 column 对象的几种创建方式,这几种创建方式什么时候使用?其实这几种创建方式,其实并不重要,重要的是要去区分开,有两大类创建的。

第一大类为无绑定的,还有一类叫做有绑定的。在这两大类之间来进行选择。有一些场景必须用无绑定,有一些场景必须使用绑定,有绑定是四种创建方式,四种方式都一样,选任意一种都可以,有绑定也是一样的,它有两种方式,任选其一就行。

只需要选择自己熟悉的方式就可以,然后只需要区分什么时候该用无绑定,什么时候使用有绑定。选择自己喜欢的方式即可。

 

image.png

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,使用泛写的形式,规定要转成哪个。前面是直接直接去起了一个别名,这点是有区别的。

接下来进行运行:

image.png

结果的第一部分叫做 new_name,第二部分,把这个 age 转成一个 long 型。

以上介绍两个知识点,第一个起别名,第二个转类型。

相关文章
|
7月前
|
C++
C++一分钟之-类型别名与using声明
【7月更文挑战第20天】在C++中,类型别名和`using`声明提升代码清晰度与管理。类型别名简化复杂类型,如`using ComplexType = std::vector<std::shared_ptr<int>>;`,需注意命名清晰与适度使用。`using`声明引入命名空间成员,避免`using namespace std;`全局污染,宜局部与具体引入,如`using math::pi;`。恰当应用增强代码质量,规避常见陷阱。
110 5
|
7月前
|
SQL
列的别名实例
【7月更文挑战第15天】列的别名实例。
45 1
|
9月前
|
Python
定义字段
定义字段。
37 1
|
9月前
|
SQL 存储 Oracle
为什么 GROUP BY 之后不能直接引用原表中的列
为什么 GROUP BY 之后不能直接引用原表中的列
54 1
|
9月前
mongoTemplate 嵌套对象包含id
mongoTemplate 嵌套对象包含id
76 0
|
编译器 C++ 开发者
c++新特性:类型别名(Type Alias)
c++新特性:类型别名(Type Alias)
142 0
|
消息中间件 缓存 数据库
A和B接口同时修改table字段,无法确认调用顺序
在互联网应用开发中,经常会碰到多个接口同时需要修改数据库表字段的情况。然而,由于无法确认接口调用的顺序,可能会导致数据冲突和一致性问题。本文将介绍一种解决这一问题的方法,通过合理的设计和技术手段,确保同时修改table字段的操作能够顺利进行,数据一致性得到保障。
179 0
A和B接口同时修改table字段,无法确认调用顺序
|
分布式计算 Java 大数据
Column 对象_创建1 | 学习笔记
快速学习 Column 对象_创建1
142 0
Column 对象_创建1 | 学习笔记
|
分布式计算 大数据 API
Column 对象_创建_有绑定| 学习笔记
快速学习 Column 对象_创建_有绑定
 Column 对象_创建_有绑定| 学习笔记
|
存储 NoSQL Redis
数据类型-set 类型介绍与基本操作| 学习笔记
快速学习数据类型-set 类型介绍与基本操作
数据类型-set 类型介绍与基本操作| 学习笔记