在并集之后对JavaRdds中的行进行排序



我试图找出有关RDD中行排序的任何信息。下面是我要做的:

Rdd1, Rdd2 
Rdd3 = Rdd1.union(rdd2); 

在Rdd3中,是否保证rdd1记录先出现,rdd2记录后出现?在我的测试中,我看到了这种行为正在发生,但在任何文档中都找不到。

只是FI,我真的不关心rdd本身的顺序(即rdd2或rdd1的数据顺序真的不关心,但联合后rdd1记录数据必须首先是要求)。

在Spark中,特定分区内的元素是无序的,但是分区本身是有序的http://spark.apache.org/docs/latest/programming-guide.html#background

如果您检查您的RDD3,您应该发现RDD3只是RDD1的所有分区,然后是RDD2的所有分区,所以在这种情况下,结果恰好按照您想要的方式排序。你可以在这里读到,简单地连接来自两个RDD的分区是Spark的标准行为。联盟不保留分享者吗?

所以在这种情况下,Union似乎会给你想要的。然而,这个行为是Union的实现细节,它不是接口定义的一部分,所以你不能指望它将来不会用不同的行为重新实现。

相关内容

  • 没有找到相关文章

最新更新