如何在rdd pyspark中只求和并过滤字符串值?

hfwmuf9z  于 2021-05-29  发布在  Spark
关注(0)|答案(1)|浏览(462)

我有下面的rdd rdd=sc.parallelize(['a',3,4,2,'d']) 我只想将数字相加,即3+4+2=9作为输出1,并将字符串过滤为输出2('a','b')

ebdffaop

ebdffaop1#

可以使用正则表达式过滤和减少结果

import re
rdd=spark.sparkContext.parallelize(['a',3,4,2,'d'])

output1 = rdd.filter(lambda x: re.match('\d+$',str(x))).reduce(lambda x,y:x+y)
[out]: 9

output2 = rdd.filter(lambda x: isinstance(x,str)).collect()
[out]: ['a','d']

相关问题