python:PySpark数据计算 - filter方法

filter方法

功能

  • rdd.filter()方法会接受一个函数作为参数,该函数定义了过滤条件。将传入的函数应用到RDD中的每个元素上,并根据函数的返回值决定是否保留该元素。如果函数返回True,则元素被保留;如果返回False,则元素被过滤。

语法

rdd.filter(func)

其中 func: (T) -> bool 必须传入一个参数,返回True或者False。

示例:对数据进行过滤,只保留偶数

from pyspark import SparkConf, SparkContext
import os

"""
我使用的python 3.10版本+pyspark 3.5.4版本
注意:如果用python 3.12版本 + pyspark 3.5.x系列版本会报错 
"""

# 明确设置python解释器的路径
os.environ['PYSPARK_PYTHON'] = 'D:/python-virtual-env/common-practice-use-python310/Scripts/python.exe'

conf = SparkConf().setMaster('local[*]').setAppName('my_test_spark')
sc = SparkContext(conf=conf)

rdd = sc.parallelize([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
# 进行过滤,只保留偶数
rdd2 = rdd.filter(lambda x : x % 2 == 0)
print(rdd2.collect())

sc.stop()

运行输出:

25/02/20 15:08:00 WARN Shell: Did not find winutils.exe: java.io.FileNotFoundException: java.io.FileNotFoundException: HADOOP_HOME and hadoop.home.dir are unset. -see https://wiki.apache.org/hadoop/WindowsProblems
Setting default log level to "WARN".
To adjust logging level use sc.setLogLevel(newLevel). For SparkR, use setLogLevel(newLevel).
25/02/20 15:08:01 WARN NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
[2, 4, 6, 8, 10]
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值