スパークを使用しています。私はJavaPairRDD
フォームのを持ってい<Documentname, Tuple2<Phrase, URL>>
ます。
URLで指定されたページにフレーズがあるかどうかを基本的に確認した結果、上記の構造になりました。
現在、いくつかの重複するフレーズがあり (つまり、「to be or」は「to be or not to be」の中にあります)、大きなフレーズに含まれるこれらの短いフレーズを削除したいと考えています。
私は Spark に少し慣れていないので、Spark 内でこれを行う方法がわかりません。
二重のネストされたループを作成し、要素を collect() することで実行できることはわかっていますが、削減または集計を使用して Spark 内でそれを実行する方法があるかどうか疑問に思っています。
基本的に、フレーズの各ペアをチェックし、一方が他方に含まれていない場合は両方のフレーズを返すか、一方が含まれている場合は 1 つのフレーズのみを返す関数が必要です。
または、何らかのフィルターを実行して、これらの短いフレーズを削除したいと思います。
何か案は?
編集: CombinebyKey または AggregateByKey のいずれかが機能すると考えていますが、Java でそれらを使用する方法がわかりません。シーケンス・コンバイナー機能とは?
> のいくつかの要素をキーで組み合わせて、1 つのフレーズが他のフレーズに含まれていないタプルのリストを作成したいと考えています。