티스토리 뷰

filter()

filter는 filter의 인자함수에서 true인 값만을 반환해줍니다.

그러므로 filter에서 사용될 인자함수는 true나 false를 반환해주는 함수를 사용해야 합니다.

 

지난 글에서 생성했던 RDD입니다.

filteredRDD에는 x보다 큰 값으로 filteredRDD2에는 x보다 작은 값으로 filter를 적용해줍니다.

 

 

기타 함수

first() - RDD의 첫 번째 파티션의 첫 번째 요소를 반환합니다.

take() - RDD의 첫 번째 파티션부터 인자로 넣은 정수만큼 반환합니다.

takeOrdered() - 오름차순으로 인자값의 개수만큼 반환합니다.

top() - 내림차순으로 인자값의 개수만큼 반환합니다.

 

groupByKey()

key, value 데이터 타입의 key 값을 기준으로 shuffling 해줍니다. 하지만 함수를 인자로 적용하지 못하고 네트워크 부하, out of memory 가능성과 같은 문제점으로 인해 reduceByKey()를 주로 사용하게 됩니다.

 

먼저 키값 데이터 타입의 RDD를 생성하고 groupByKey()를 통해 동일한 키값을 병합해줍니다.

반복문에서 동일한 키를 가진 값들을 더하여 출력해줄 수 있습니다.

 

reduceByKey()

groupByKey와 동일한 형태에서 함수를 인자로 입력받을 수 있습니다.

아래의 lambda 함수는 동일한 키를 가진 값들을 더하여 위 groupByKey에서 sum으로 값들을 더해주는 것과 동일하게 적용됩니다.

countByValue()

reduceByKey나 groupByKey를 통해 병합된 RDD를 다시 딕셔너리 타입으로 만들어줍니다.