使用filter
和zipWithIndex
:
rdd.zipWithIndex().
filter(lambda (key,index) : key == [1,2]).
map(lambda (key,index) : index).collect()
注意这里的[1,2]
可以很容易地更改为变量名,并且整个表达式可以包装在函数中。
它的工作原理
zipWithIndex
只是简单地返回一个元组(item
,index
),如下所示:
rdd.zipWithIndex().collect()
> [([1, 2], 0), ([1, 4], 1)]
filter
查找符合特定标准(在本例中是 key
等于特定子列表)的内容。
rdd.zipWithIndex().filter(lambda (key,index) : key == [1,2]).collect()
> [([1, 2], 0)]
map
很明显,我们可以直接得到索引:
rdd.zipWithIndex().filter(lambda (key,index) : key == [1,2]).
map(lambda (key,index): index).collect()
> [0]
如果需要的话,我们可以通过索引[0]
来获取第一个元素。
[1,2]
这样的任意子列表吗? - Akshat MahajanzipWithIndex
的示例。你可以在这里找到它。 - Akshat Mahajan