从元组RDD中删除空字符串

时间:2019-02-20 12:03:16

标签: python apache-spark pyspark tuples rdd

我有一个(name,[token1, token2, ...])形式的RDD,其中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)

1 个答案:

答案 0 :(得分:1)

尝试以下方法: a = (Robert,['hello', 'movie', '', 'cinema'])

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

这是从序列中删除None,False,0,“”,“的最佳方法