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]

被折叠的 条评论
为什么被折叠?



