スパークでは、2つの異なるフィールドでRDDをソートする必要があります。たとえば、ここの例では、最初にfieldA
で要素をソートし、その中でfieldB
(セカンダリソート)でソートします。与えられた例で使用されているメソッドは十分に良いですか?私は自分のコードをテストし、それは動作します。しかし、これは信頼できる方法ですか?Sparkの結合を使用したセカンダリソート?
// x is of type (key, fieldA) and y of type (key, fieldB)
val a = x.sortBy(_._2)
// b will be of type (key, (fieldB, fieldA))
val b = y.join(x).sortBy(_._2._1))
したがって、次のような出力が必要です。
fieldA, fieldB
2, 10
2, 11
2, 13
7, 5
7, 7
7, 8
9, 3
9, 10
9, 10
しかし、これについては、(A、B)のタイプをソートする方法の順序変数を定義する必要があると思います。いいえ?他の方法があるかもしれませんが、私の質問は、私が使用しているアプローチに関連しています。 – pythonic