开发者学堂课程【大数据Spark2020最新课程(知识精讲与实战演练)第二阶段:Rdd 算子_转换_filter】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/689/detail/11968
Rdd 算子_转换_filter
内容介绍:
一、序言
二、filter
一、序言
数据清洗是数据记录的重要步骤,本质就是把一个数据集当中不合法非法的部分去除,那么在数据集当中去掉一部分数据该怎么去实现呢?
那么这个时候就要去借助一个新的 API 叫做 filter,这个 filter 可以帮助我们在处理器当中去掉一部分元素,filter 整个的原理就是假设说现在呢有一个数据集,经过 filter 的这个过滤,把数据集当中某一个内容去除掉了。
二、Filter
那么 filter 也是由算子以及算子里面所接收的这个函数来去构成的,filter 这个算子是要做一个过滤,它过滤的规则是要集中的函数来去指定,那么接下来就去写代码,看一看 filter,先进入到 idea 当中,去创建一个新的类,创建一个新的方法,那么这个方法我们就叫做 filter。创建好类之后,第一步是定义集合,第二步是过滤数据,第三是收集结果。
还是使用链式调用的方式,一行代码把三个要求实现。
通过 sc.parallelize(seq(1,2,3)),接下来过滤数据,使用 filter,来调用数据。Filter 当中,每一个数据集就是数据库当中的每一个元素,这是需求是保留偶数,这时就可以用 item%2,如果一个数字能被2整除,即为偶数。接下来收集结果,用 for item 来收集结果。
@Test
def filter(): Unit =
// 1. 定义集合
// 2.过滤数据
// 3. 收集结果
sc.parallelize(Seq(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)).filter(item => item % 2==0)
.collect()
.foreach(item => println(item))
运行结果如下:
通过新生成的rdd当中,只保留了2 4 6 8 10这些偶数,filter 的含义是可以过滤掉数据集当中的某一部分元素。
那么 filter 当中接收的函数,filter 中接收的这个函数参数是每一个元素,如果这个函数返回,那么当前元素就会被加入数据集,如果返回 false,那么就是意味着过滤掉当前元素。