在 RDD 中设置一个键

Set a key in RDD

我有一个列表 RDD 或 np.arrays 像这样:

[([1,0,0])
 ([0,1,0])
 ([0,0,1])]

是否可以为这个RDD中的每一行设置不同的键?数字就是最好的例子:

[(0, [1,0,0])
 (1, [0,1,0])
 (2, [0,0,1])]

我的第一次尝试是:

rdd1 = rdd.map(lambda line: (key, line))

在这种情况下,如何设置 不同且唯一的 键?

你可以zipWithIndex:

from operator import itemgetter

rdd.zipWithIndex().map(itemgetter(1, 0))

zipWithUniqueId:

rdd.zipWithUniqueId().map(itemgetter(1, 0))

前一个需要额外的操作,但它是确定性的。