【发布时间】:2020-12-16 22:50:43
【问题描述】:
我在 PySpark 中有一个名为 animalRDD 的 RDD,并且标头已被删除。标头标题为:animal, animalBreed, nickName, numberLegs。
animalRDD如下:
[('Dog', 'Poodle', 'Rex', '4'), ('Cat', 'Tabby', 'Digger', 'XXX'), ('Horse', 'Stallion', 'Ozzie', ' '), ('Chicken', 'Rooster', 'Diesel', '2'), ('Bear', 'Black Bear', 'Bazza', '4')]
现在 RDD 中的每个元素都是一个字符串。我想映射 RDD,使腿数变为整数。
我知道我可以使用以下转换为整数:
animalRDD.map(lambda x: (x[0], x[1], x[2], int(x[3])))
但是,数据中有字符串“XXX”和“”(空白)。有没有办法去掉这两个无效点,让返回的RDD是这样的?
[('Dog', 'Poodle', 'Rex', 4),('Chicken', 'Rooster', 'Diesel', 2), ('Bear', 'Black Bear', 'Bazza', 4)]
谢谢!
【问题讨论】:
-
也许是这个:
animalRDD.filter(lambda x: x[3].strip().isdigit()).map(...)
标签: python apache-spark pyspark mapping rdd