더북(TheBook)

이를 코드로 어떻게 구현할까요? 분산 컴퓨팅 프레임워크인 아파치 스파크를 사용해 분할 및 정복 전략을 구현해 봅시다.

1. 아파치 스파크를 사용하려면 아파치 스파크 런타임 컨텍스트를 생성해야 합니다.

[in :]

import findspark
findspark.init()
from pyspark.sql import SparkSession
spark = SparkSession.builder.master("local[*]").getOrCreate()
sc = spark.sparkContext

2. 예제에 사용할 단어 리스트를 만듭니다. 리스트를 스파크의 네이티브 자료 구조인 탄력적 분산 데이터셋(Resilient Distributed Dataset, RDD)으로 변환합니다.

[in :]

wordsList = ['python', 'java', 'ottawa', 'ottawa', 'java', 'news']
wordsRDD = sc.parallelize(wordsList, 4)
# wordsRDD에 담긴 요소를 불러 모아 출력합니다.
print(wordsRDD.collect())

3. map 함수를 사용하여 단어를 키-값 쌍으로 바꿉니다.

[in :]

wordPairs = wordsRDD.map(lambda w: (w, 1))
print(wordPairs.collect())

[out:]

[('python', 1), ('java', 1), ('ottawa', 1), ('ottawa', 1), ('java', 1), ('news', 1)]

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.