PySpark RDD 之 filter

1. pyspark 版本

       2.3.0版本

 

2. 官网

filter(f)[source]

Return a new RDD containing only the elements that satisfy a predicate.

中文: 返回仅包含满足条件的元素的新RDD。

>>> rdd = sc.parallelize([1, 2, 3, 4, 5])
>>> rdd.filter(lambda x: x % 2 == 0).collect()
[2, 4]

 

3. 我的代码

案列1

from pyspark import SparkContext, SparkConf
conf = SparkConf().setMaster("local").setAppName("fliter")
sc = SparkContext(conf=conf)
rdd1 = sc.parallelize([1, 2, 3, 4, 5])
new_rdd1 = rdd1.filter(lambda x: x>2)
print('new_rdd1 = ', new_rdd1.collect())

>>> new_rdd1 =  [3, 4, 5]

案列2

rdd2 = sc.parallelize([[1, 'a'], [2, 'b'], [3, 'c']])
new_rdd2 = rdd2.filter(lambda x: x[0] > 1)
print('new_rdd2 = ', new_rdd2.collect())

>>> new_rdd2 =  [[2, 'b'], [3, 'c']]

案列3: 筛选出健中有a的元素

rdd3 = sc.parallelize([{'a': 1}, {'b': 2}, {'c': 3}])
def myfilter(x):
    print('x= ', x, type(x))
    if 'a' in x.keys():
        return x
new_rdd3 = rdd3.filter(lambda x: myfilter(x))
print('new_rdd3 = ', new_rdd3.collect())

>>> new_rdd3 =  [{'a': 1}]

打印在notebook dos窗口显示出来了:

 

4. notebook

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值