Python には、組み込みの map() 関数と reduce() 関数があります。
Google の有名な論文「MapReduce: Simplified Data Processing on Large Clusters」を読んでいれば、map/reduce の概念は大体理解できます。
まず地図を見てみましょう。 map() 関数は 2 つのパラメータを受け取り、1 つは関数、もう 1 つは Iterable です。map は渡された関数をシーケンスの各要素に順番に適用し、結果を新しい Iterator として返します。
たとえば、関数 f(x)=x2 があり、この関数をリスト [1, 2, 3, 4, 5, 6, 7, 8,次のように、map() を使用して実装できます:
次に、Python コードを使用して実装します:
>>> def f(x):... return x * x ...>>> r = map(f, [1, 2, 3, 4, 5, 6, 7, 8, 9])>>> list(r) [1, 4, 9, 16, 25, 36, 49, 64, 81]
map() を渡す 最初のパラメータは f で、これは関数オブジェクト自体です。結果 r は Iterator であり、Iterator は遅延シーケンスであるため、list() 関数を使用して、シーケンス全体を検索し、list を返します。
map() 関数は必要ないと思われるかもしれませんが、ループを作成して結果を計算することもできます:
L = []for n in [1, 2, 3, 4, 5, 6, 7, 8, 9]: L.append(f(n)) print(L)
それは実際に可能です。が、上記のループから「リストの各要素に f(x) を適用し、その結果として新しいリストを生成する」というコードが一目で理解できますか?
つまり、map() は高階関数として実際に演算規則を抽象化しているので、単純な f(x)=x2 の計算だけでなく、任意の計算も可能です。たとえば、複雑な関数は、このリスト内のすべての数値を文字列に変換します:
>>> list(map(str, [1, 2, 3, 4, 5, 6, 7, 8, 9])) ['1', '2', '3', '4', '5', '6', '7', '8', '9']
以上がMapReduce とは何ですか? MapReduce がどのように機能するかを 3 分で学びましょう。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。