python のmrjobを使用して、実行時間の長い python プログラムの一部を MapReduce Hadoop ジョブに変換することから始めています。簡単な単語カウントの例が機能するようになり、「テキスト分類」の例を概念的に理解しました。
ただし、問題を解決するために必要な手順を理解するのに少し苦労しています。
複数のファイル (約 6000) があり、それぞれに 2 ~ 800 行あります。この場合、各行はスペースで区切られた単純な「信号」です。各ファイルの各行と、すべてのファイル (それ自体を含む) の他のすべての行との相関関係を比較する必要があります。次に、相関係数に基づいて結果を出力します。
1 つのファイルの例:
1 2 3 4 2 3 1 2 3 4 1 2
2 2 3 1 3 3 1 2 3 1 4 1
2 3 4 5 3 2 1 3 4 5 2 1
...
このファイルの各行を、他のすべてのファイルのすべての行とペアにする必要があります...または、すべてのファイルを1つのファイルに連結して簡単にすることもできますが、ペアごとの反復が必要です。
計算の方法と、最終的な削減ステップを使用して結果を集計およびフィルタリングする方法を理解しています。私が抱えている問題はyield、単一の setp ですべてのファイルを読み取らずに、すべてのペアワイズ アイテムを連続するステップに移動する方法です。を使用する入力ファイルを事前に準備できると思いますitertools.productが、このファイルは非常に大きくなります。