私はpythonについての知識がないので、この回答で提供するすべての参照とコードはjavaに関連しています。ただし、これをPythonコードに変換するのはそれほど難しくありません。
次のWeb ページをご覧ください。Sparkでサポートされているすべての変換とアクションのリストを提供する、Sparkの公式 Web ページにリダイレクトされます。
私が間違っていなければ、(あなたの場合) 最良のアプローチはdistinct()
変換を使用することです。これは、ソース データセットの個別の要素を含む新しいデータセットを返します (リンクから取得)。Java では、次のようになります。
JavaPairRDD<Integer,String> myDataSet = //already obtained somewhere else
JavaPairRDD<Integer,String> distinctSet = myDataSet.distinct();
たとえば、次のようになります。
Partition 1:
1-y | 1-y | 1-y | 2-y
2-y | 2-n | 1-n | 1-n
Partition 2:
2-g | 1-y | 2-y | 2-n
1-y | 2-n | 1-n | 1-n
次のように変換されます:
Partition 1:
1-y | 2-y
1-n | 2-n
Partition 2:
1-y | 2-g | 2-y
1-n | 2-n |
もちろん、それぞれが個別の要素のリストを持つ複数の RDD データセットが存在することになります。