有类型转换_transform | 学习笔记

简介: 快速学习有类型转换_transform

开发者学堂课程【大数据 Spark 2020版(知识精讲与实战演练)第三阶段:无类型转换_选择】学习笔记,与课程紧密联系,让用户快速学习知识。

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


有类型转换_transform

 

内容介绍:

一、transform 使用方式

二、transform 使用场景

 

一、transform 使用方式

transform 与前面学到的 flatMap、map、mapPartitions 十分相似。

//创建一个新方法,定义为 trans1

@Test

def trans1(): unit = {

//之所以单独学习 transform,是因为之前在学习 RDD 时没有学习该算子,而该算子在某些情境下有其优点。

val ds = spark.range(10)

//创建一个数据集 ds,在 SparkSession 中,有一叫作

spark.range 的方法。在该方法中若输入“10”,即会生成 0-9

的 10 个随机数,则所得的 ds 为 0、1、2、3、4、5、6、7、8、

9。

ds.transform(dataset => dataset.withColumn("double",

'id*2))

//此处的 transform 与前面所学的的 flatMap、map、

mapPartitions 均不相同。虽然四者均为转换类比的算子,但

transform 转换的是两个数据集,是对数据集的操作,而其他三个算子无论是一次给出一个分区的数据,还是一次给出一条数据都不会把整个数据集都进行转换。在 transform 获取到 dataset 之后,即可通过 withColumn 创建新的列 double

//withColumn("double",'id*2),此 API 在后面的内容中

会继续进行学习。

.show()

}

}

运行程序,运行结果(部分)如下:

image.png

可以发现输出结果无误。

withColumn 并非本节课的重点,本节课主要要求掌握 transform 是将一个 dataset 转为另一个 dataset。


二、transform 使用场景

Transform 相较于之前学过的 3 种算子,用途相对没有那么广泛,一般会应用于一些特殊的开发场景中,如 ds 了许多 dataset,即可使用 transform 来进行转换操作。

相关文章
|
JavaScript 索引
V-for中 key 值的作用,如何选择key
V-for中 key 值的作用,如何选择key
|
并行计算 算法 异构计算
antv/g6之图布局及切换布局
antv/g6之图布局及切换布局
1491 0
判断是否保持函数依赖的方法
判断是否保持函数依赖的方法
415 2
|
JavaScript Docker Python
下个时代的开发工具-Nix:声明式的运行环境构建器、简单场景下的docker替身
Nix 是一个独特的包管理工具和构建系统,采用声明式方法管理软件包和运行环境。它通过精确控制依赖关系和环境配置,确保软件的可重复性、隔离性和可追溯性。Nix 支持多语言开发环境,提供声明式配置、环境隔离、回滚与版本控制等核心功能,适用于复杂开发场景,有效解决依赖冲突和环境不一致问题。
1532 3
|
存储 缓存 监控
深入了解MySQL内存管理:如何查看MySQL使用的内存
深入了解MySQL内存管理:如何查看MySQL使用的内存
1246 1
|
Kubernetes 安全 JavaScript
Docker 与 Podman:探索用于现代 Web 开发的容器技术
在软件开发中,Docker 和 Podman 作为主流容器化技术,各具特色。本文深入对比两者优缺点,探讨其实用场景与部署Web应用的最佳实践。Docker 凭借成熟生态和跨平台能力引领潮流;Podman 以无守护进程架构提升安全与效率。通过具体示例展示如何构建和运行Node.js与Angular应用,帮助读者理解核心命令与配置要点。无论是在开发环境还是生产部署,选择合适的工具能显著增强应用的安全性和稳定性。
777 1
|
机器学习/深度学习 人工智能 自然语言处理
深度学习在自然语言处理中的应用进展
本文旨在深入探讨深度学习技术在自然语言处理领域的应用与进展。通过分析最新的研究数据和案例,本文揭示了深度学习模型如何推动语言理解、生成和翻译的边界。数据显示,与传统方法相比,深度学习模型在多个NLP任务中展现出更高的准确率和效率。本文将详细讨论这些模型的工作原理,它们的优势与挑战,以及未来可能的发展方向。
241 27
|
人工智能 大数据
创新之路:技术进步与持续学习的关系
在技术发展迅速的时代,持续学习成为创新的关键。本文探讨了技术进步与个人学习之间的相互作用,强调了不断学习与实践在推动技术创新和个人职业发展中的重要性。
469 15
|
SQL 分布式计算 Hadoop
利用Hive与Hadoop构建大数据仓库:从零到一
【4月更文挑战第7天】本文介绍了如何使用Apache Hive与Hadoop构建大数据仓库。Hadoop的HDFS和YARN提供分布式存储和资源管理,而Hive作为基于Hadoop的数据仓库系统,通过HiveQL简化大数据查询。构建过程包括设置Hadoop集群、安装配置Hive、数据导入与管理、查询分析以及ETL与调度。大数据仓库的应用场景包括海量数据存储、离线分析、数据服务化和数据湖构建,为企业决策和创新提供支持。
1767 1
|
缓存 小程序 数据库
微信小游戏开发最全系列教程
大家好,我是小蚂蚁,我写了微信小游戏开发的两个系列教程,从一个绝对新手入门,再到实战开发出一款微信小游戏。这些系列教程已经帮助过不少人做出了自己的第一个微信小游戏,很高兴它们发挥了价值,也让我觉得这件事做的有意义。 在此,对两个系列教程做了一下整理,便于浏览和学习,也希望它能够帮助你做出自己的第一个小游戏。
698 0