머신러닝은 수많은 계산을 통해 머신러닝 모델을 완성하고, 완성된 모델을 이용해 예측을 하고, 분류를 하고 유사한 데이터들을 그룹화할 수 있다.
사용하는 알고리즘에 따라 계산량의 차이는 있기는 하지만 분명한 것은 데이터가 많을수록, 더욱 좋은 결과를 얻기위해서는 엄청난 양의 계산을 해야 한다는 점은 피할수 없는 사실이다. 문제는 이렇게 많은 계산을 하는데 걸리는 시간이 초나 분단위가 아니라 일이나 주 혹은 월단위이상이 되었을때이다. 왜냐하면 하나의 머신러닝 모델을 완성하기 위해서는 수십 수백번의 학습을 위한 계산이 필요하기 때문이다.
Python은 SK-Learn과 같은 머신러닝에 필요한 양질의 라이브러리를 가지고 있지만 다수의 컴퓨터노드에 분산처리할 수 있는 라이브러리는 아직 좋은 대안이 없었다.
빅데이터에서 많이 활용되는 Apache Spark를 이용하면 분산처리를 해결할 수 있어 Python과 Spark의 결합은 머신러닝을 위한 최적의 환경을 약속한다.
본 강의에서는 Python과 Spark를 어떻게 결합해서 사용할 수 있는지를 설명하고, Spark를 사용했을때와 그렇지 않을때의 성능이 얼마나 차이가 나는지를, 그리고 사용상의 중요한 팁을 소개한다.