ソートされたRDD [String]からいくつかの要素を抽出しようとしています。私は "zipWithIndex"を試して、残りの部分でRDDをゼロにすることを試みました。ソートされたRDDをn個の部分に分割し、各部分から最初の要素を取得する方法は?
val expectedSize = 165
val n = rddOfStrings.count/expectedSize
val resultArray = rddOfStrings.sortBy(x => x).zipWithIndex.filter(x => x._2 % n == 0).map(_._1).collect
"n"は必ずしも整数ではありません。 double型の場合、resultArrayのサイズはexpectedSizeと等しくなりません(+1または-1を生成します)。同じサイズのコレクションを返すにはどうすればいいですか?
P.S.私はすべてのエグゼキュータにコレクションオブジェクトを渡して、スパークアキュムレータを試しました。非常に大きなデータセットのため、失敗しました。 165部を等しくすることはできません
は何ですかあなたの目標はここですか?データセットからサンプルを取得するだけです。実際に使用できるサンプルメソッドがあります。 – puhlen
私は、rdd(ソート済み)を165等分し、それぞれの部分から最初の(頭の)要素を取ります。 – sen