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 型。

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

相关文章
|
设计模式 Java
【设计模式系列笔记】建造者模式
建造者模式是一种创建型设计模式,用于将复杂对象的构建与其表示分离,使构建过程可定制。关键元素包括产品类(定义要构建的对象)、建造者接口(定义构建方法)、具体建造者类(实现构建过程)和指导者类(负责构建过程)。通过建造者模式,客户端可以灵活地创建具有不同表示的复杂对象,提高代码的可读性和可维护性,尤其适用于构建过程复杂且包含多个可选部分的情况。
248 1
|
9月前
|
机器学习/深度学习 人工智能 算法
HuatuoGPT-o1:开源的医学推理大模型,通过复杂推理和强化学习提升医学问题解决能力
HuatuoGPT-o1 是香港中文大学与深圳大数据研究院联合推出的医学高级推理大模型,通过复杂推理和强化学习提升医学问题解决能力。
549 8
HuatuoGPT-o1:开源的医学推理大模型,通过复杂推理和强化学习提升医学问题解决能力
|
11月前
|
Java 索引
Java“ExceptionInInitializerError”解决
Java中遇到“ExceptionInInitializerError”错误通常是因为静态初始化块或静态变量初始化时发生异常。解决方法包括检查静态代码块中的逻辑错误、确保资源正确加载以及处理可能的空指针异常。
2015 8
|
10月前
|
人工智能 运维 自然语言处理
智能化运维:AI在IT运维领域的深度应用与实践####
本文探讨了人工智能(AI)技术在IT运维领域的深度融合与实践应用,通过分析AI驱动的自动化监控、故障预测与诊断、容量规划及智能决策支持等关键方面,揭示了AI如何赋能IT运维,提升效率、降低成本并增强系统稳定性。文章旨在为读者提供一个关于AI在现代IT运维中应用的全面视角,展示其实际价值与未来发展趋势。 ####
1463 4
|
Kubernetes Linux 容器
解决删除快照后启动虚拟机显示指定的文件不是虚拟磁盘 打不开磁盘“路径”或它所依赖的某个快照磁盘。 模块“disk”启动失败。 未能启动虚拟
解决删除快照后启动虚拟机显示指定的文件不是虚拟磁盘 打不开磁盘“路径”或它所依赖的某个快照磁盘。 模块“disk”启动失败。 未能启动虚拟
1307 2
|
存储 人工智能 安全
微软的Copilot+ PC将重塑企业计算的四种方式
微软的Copilot+ PC将重塑企业计算的四种方式
|
数据采集 人工智能 算法
你要牢记的四个常用AI提示词框架:ICIO、CRISPE、BROKE、RASCEF,有助于获取更加稳定和高质量的内容
你要牢记的四个常用AI提示词框架:ICIO、CRISPE、BROKE、RASCEF,有助于获取更加稳定和高质量的内容
|
关系型数据库 数据安全/隐私保护 PostgreSQL
基于Docker快速搭建 PostgreSQL 高可用方案
基于Docker快速搭建 PostgreSQL 高可用方案
Python编码错误的解决办法SyntaxError: Non-ASCII character '\xe7' in file
Python编码错误的解决办法SyntaxError: Non-ASCII character '\xe7' in file
|
Linux 云计算 开发者
【python | linux09】类属性、实例属性、面向对象四大特征
在类的属性中,分为公有类属性和私有类属性; 公有类属性:所有对象都可访问; 私有类属性:只能在类内部访问,不能通过实例对象访问
279 0
【python | linux09】类属性、实例属性、面向对象四大特征