请说明在 PySpark 中利用 filter() 方法对 RDD 进行数据筛选的具体操作方式?
考察说明
考查对 PySpark RDD 转换操作中 filter 函数的理解与应用能力。
回答思路
- 【回答框架 1】filter() 是 RDD 的转换操作,接收一个返回布尔值的函数或 lambda 表达式,对每个元素进行判断,保留结果为 True 的元素,返回一个新的 RDD,原 RDD 不变。
- 【回答框架 2】使用方式:rdd.filter(lambda x: x > 2) 或 rdd.filter(自定义函数),其中函数参数为 RDD 中的单个元素。
- 【回答框架 3】由于是转换操作,filter() 具有惰性特性,只有在触发动作(如 collect()、count())时才真正执行计算。
- 【回答框架 4】常见用于数据清洗、去除无效或异常数据,例如过滤空值或满足特定条件的记录。
- 【关键点 1】filter() 返回新 RDD,不修改原数据。
- 【关键点 2】filter() 是惰性转换,需要动作操作触发执行。
- 【关键点 3】函数需返回布尔值,True 保留,False 过滤。
- 【易错点 1】不要误将 filter() 与行动操作混淆,它不会立即执行。
- 【易错点 2】函数逻辑需正确,避免过滤条件写反而导致数据丢失。