我有下面的rdd rdd=sc.parallelize(['a',3,4,2,'d']) 我只想将数字相加,即3+4+2=9作为输出1,并将字符串过滤为输出2('a','b')
rdd=sc.parallelize(['a',3,4,2,'d'])
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']
1条答案
按热度按时间ebdffaop1#
可以使用正则表达式过滤和减少结果