我目前正在嘗試將兩個DataFrames連接在一起,但在其中一個Dataframe中保留相同的順序。數據框可以加入Spark保存順序嗎?
從Which operations preserve RDD order?看起來(糾正我,如果這是不準確的,因爲我是新來的火花)連接不保留順序,因爲行加入/「到達」在最後的數據框不是在指定的順序,由於數據在不同的分區中。
如何在保留一個表的順序的同時執行兩個DataFrame的連接?
例如,
+------------+---------+ | col1 | col2 | +------------+---------+ | 0 | a | | 1 | b | +------------+---------+
與
+------------+---------+ | col2 | col3 | +------------+---------+ | b | x | | a | y | +------------+---------+
加入了COL2應該給
+------------+--------------------+ | col1 | col2 | col 3 | +------------+---------+----------+ | 0 | a | y | | 1 | b | x | +------------+---------+----------+
我聽說過使用3210或repartition
的一些事情,但我不確定。任何建議/方法/見解表示讚賞。
編輯:這是否類似於在MapReduce中有一個reducer?如果是這樣,那麼Spark會如何?
看到這個問題:http://stackoverflow.com/questions/32882529/how-to-zip-twoor-more-dataframe-in-spark –
我不認爲zip會工作,因爲表2的行應該在保留順序的情況下連接到表1的行,而不是行1連同行1'等,並且類似地用於索引和連接的方法。 –
我剛剛從上面的例子中注意到col2正在用於連接條件。那是你要的嗎? –