我刚刚发现了这种RDD.zip()方法,我无法想象它的合同可能是什么.
当然,我明白它的作用.但是,我一直都是这样理解的
换句话说,RDD是(多)集合,而不是序列(当然,例如,Python中的一个AttributeError: 'set' object has no attribute 'zip')
我上面的理解有什么问题?
这种方法背后的理由是什么?
在琐碎的背景之外它是合法的a.map(f).zip(a)吗?
编辑1:
zipWithIndex(),以及各种zipPartitions()变种.first()和take()是不是疯了,因为他们只是(非随机)的RDD的样本.collect()也没关系-它只是一个转换set到sequence这是完全合法的.编辑2:回复说:
当您从另一个RDD计算一个RDD时,新RDD中的元素顺序可能与旧RDD中的元素顺序不对应.
这似乎暗示即使是微不足道a.map(f).zip(a)也不能保证等同于a.map(x => (f(x),x)).zip()结果可重复的情况是什么?
apache-spark ×1