首页 > 解决方案 > 从元组 RDD 中删除空字符串

问题描述

我有一个形式的 RDD,(name,[token1, token2, ...])name是键和token值。例如:(Robert,['hello', 'movie', '', 'cinema'])我想删除值中的空字符串,使用map.

我的尝试是:

new_tuple = tuple.map(lambda x: (x[0], [s for s in x[1] if len(s)>0]))

获得(Robert,['hello', 'movie', 'cinema'])

但我觉得有一种不那么多余的方法吗?

之后,我想在上述操作后删除可能最终没有任何值(令牌)的项目,以下工作是否可行?:

final_tuple = new_tuple.filter(lambda x: len(x[1])>0)

标签: pythonapache-sparkpysparktuplesrdd

解决方案


试试这个: a = (Robert,['hello', 'movie', '', 'cinema'])

然后a = (a[0], list(filter(None, a[1])))

这是从序列中删除 None、False、0、""、'' 的最佳方法


推荐阅读