糸を使用して、Hadoop クラスターで Apache Spark を実行しています。1 億 6000 万レコードのような大きなデータ セットがあります。自己結合を実行する必要があります。結合は、1 つの列 (c1) の完全一致、日付の重複一致、およびさらに 2 つの列のうちの少なくとも 1 つの一致 (c3 または c4 としましょう) で行われます。
RDD で HBase からデータを読み取り、その RDD を DATASET に変換してから、結合を行いました。だから私の質問は:
1)すべてをシャッフルするのではなく、sparkがパーティションにのみ参加するように、結合を行う前にc1でrddをパーティション分割すると役立ちますか(これは常に一致する必要があります)?
2) また、キーを使用してこれを行いました (例: c1+c3 および c1+c4)。次に、キーによる結合を行いますが、日付の重複によってすべての結果をフィルター処理する必要があります。日付の重複を追加すると思いました結合により、生成されるレコードが少なくなります。
3)正確な列の値に一致する自己結合を行う効率的な方法はありますが、他の列との比較も行いますか?