ホームページ  >  記事  >  バックエンド開発  >  MapReduce とは何ですか? MapReduce がどのように機能するかを 3 分で学びましょう。

MapReduce とは何ですか? MapReduce がどのように機能するかを 3 分で学びましょう。

Tomorin
Tomorinオリジナル
2018-08-17 14:46:566318ブラウズ

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() を使用して実装できます:

MapReduce とは何ですか? MapReduce がどのように機能するかを 3 分で学びましょう。

次に、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 で、これは関数オブジェクト自体です。結果 rIterator であり、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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。