>백엔드 개발 >파이썬 튜토리얼 >MapReduce란 무엇입니까? MapReduce가 어떻게 작동하는지 3분 안에 알아보세요.

MapReduce란 무엇입니까? MapReduce가 어떻게 작동하는지 3분 안에 알아보세요.

Tomorin
Tomorin원래의
2018-08-17 14:46:566373검색

Python에는 map() 및 reduce() 기능이 내장되어 있습니다.

Google의 유명한 논문 "MapReduce: Simplified Data Treatment on Large Clusters"을 읽어보신 분이라면 map/reduce의 개념을 대략적으로 이해하실 수 있을 것입니다.

먼저 지도를 살펴보겠습니다. map() 함수는 두 개의 매개변수를 받습니다. 하나는 함수이고 다른 하나는 Iterable입니다. map은 전달된 함수를 시퀀스의 각 요소에 차례로 적용하고 결과를 새 Iterator로 반환합니다.

예를 들어 f(x)=x2라는 함수가 있고 이 함수를 목록 [1, 2, 3, 4, 5, 6, 7, 8, 9]에 적용하려면, 다음과 같이 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) Act를 넣고 결과적으로 새 목록을 생성하시겠습니까?"?

그러므로 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.