有类型转换_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 来进行转换操作。

相关文章
|
8月前
|
数据安全/隐私保护
关于DotNetZip的用法
关于DotNetZip的用法
81 0
mailto用法详解
mailto用法详解
552 0
mailto用法详解
ClientToScreen 和ScreenToClient 用法
<div class="mod-page-main wordwrap clearfix"> <div class="x-page-container"> <div class="mod-blogpage-wraper"> <div class="grid-80 mod-blogpage"> <div class="mod-text-content mod-post-content
3046 0
EasyTouch基本用法
EasyTouch基本用法 本文提供全流程,中文翻译。Chinar坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 —— 高分辨率用户请根据需求调整网页缩放比例) ...
1526 0
|
定位技术 内存技术