2017-08-04 62 views

回答

1

RDDs只能按鍵進行排序。非鍵/值數據無法排序。

但是,如果您確實在RDD中有一些排序的鍵/值數據,則收集將保留該順序。請注意,雖然collectAsMap()不會保留訂單。

map()返回非鍵/值數據,所以返回的RDD沒有排序。 flatMap()也是一樣。

怎麼樣mapToPair()和flatMapToPair。如果這些工作的RDD包含鍵/值數據,則沒有理由認爲輸出RDD的鍵是相同的,因此不能假定該順序被保留。我無法想象,在密鑰不變的情況下,這些方法已經實施以保持秩序。

mapValues()和flatMapValues()確實保留了輸入RDD的關鍵,因此可能會保留順序,但您必須自己調查。

至於zipWithIndex,根據這個:How Can I Obtain an Element Position in Spark's RDD?的RDD的排序是zipWithIndex作用於不保留