自学内容网 自学内容网

RDD转换算子:【filter】

功能:

过滤数据
对RDD集合中的每个元素调用一次参数中的表达式对数据进行过滤,符合条件就保留,不符合就去除

语法:

 def filter(self, f: T -> bool ) -> RDD[T]

f:代表参数是一个函数
T:代表RDD中的每个元素
U:代表RDD中每个元素转换的结果

举例:

需求:去除不一样的数据(第三行和第五行数据为不一样的数据):

1 周杰伦 0 夜曲/发如雪/东风破/七里香
2 陈奕迅 0 十年/爱情转移/你的背包
3 1 日不落/舞娘/倒带
4 赵雷 0 鼓楼/成都/吉姆餐厅/无法长大
5 凤凰传奇 -1 月亮之上/荷塘月色

代码:

如何构造sc对象并创建RDD 参考文章:
【Spark中创建RDD的两种方式】Spark中如何获取sc对象、以及创建RDD的两种方式

# 读取数据,并将读取到的数据转换为RDD
fileRdd = sc.textFile("../datas/b.txt",2)
# 使用正则切割,其中 r 表示 \ 不转义,切割完判断
filterRdd = fileRdd.filter(lambda line: re.split(r"\s",line)[2] != '-1' and len(re.split("\\s",line)) == 4)
# foreach为触发算子,用于打印
filterRdd.foreach(lambda x: print(x))

原文地址:https://blog.csdn.net/lzhlizihang/article/details/143480693

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!