为什么zip会截断pyspark中的数据?

时间:2014-08-18 13:20:46

标签: python apache-spark

我在使用zip时遇到了一些奇怪的行为;我基本上试图获得一个键值对的RDD,其中值只是一个索引,例如我初始化了一个rdd' f':

f = sc.parallelize(tokenizer('a fox jumped over the rabbit')).flatMap(lambda x: ngrams(x)) 
f.count()
52

然后执行:

ind = sc.parallelize(range(f.count()))
ind.count()
52

f_ind = f.zip(ind)
f_ind.count()
48 

我不明白为什么有些元素会丢失?

1 个答案:

答案 0 :(得分:1)

问题是SparkRDD zip操作要求两个RDD具有相同数量的元素每个分区具有相同数量的元素 。最后一个要求是我上面的案例中违反的内容。似乎没有解决这个问题(但请参见例如http://www.adamcrume.com/blog/archive/2014/02/19/fixing-sparks-rdd-zip)。