더북(TheBook)

마지막 줄이 실행되면 java.lang.UnsupportedOperationException: Can't read accumulator value in task 메시지와 함께 예외가 발생한다.

실행자가 실제로 더하는 값의 타입과 누적 변수 값의 타입이 다를 경우 Accumulable 객체를 생성할 수 있다.18 Accumulable 객체는 SparkContext.accumulable(initialValue)를 호출해 생성하며, Accumulator 클래스와 마찬가지로 변수에 이름을 지정할 수 있다.

AccumulableAccumulator를 일반화한 클래스이지만, Accumulator를 더 많이 사용한다.19 Accumulable 객체는 주로 커스텀 누적 변수의 역할을 한다. 자세한 내용은 예제로 알아보자.

 

18 역주 스파크 버전 2.0.0부터는 Accumulable 클래스를 더 이상 사용하지 않는다(deprecated). 그 대신 AccumulatorV2 클래스를 사용해야 한다. 사용 예제는 스파크 공식 문서(https://goo.gl/HCX9Ve)를 참고하자.

 

19 역주 Accumulator 또한 스파크 버전 2.0.0부터는 더 이상 사용할 수 없다.

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