PySpark로 배우는 빅데이터 기초
Upendra Devisetty
Science Analyst, CyVerse
reduce(func) 액션은 일반 RDD의 요소를 집계할 때 사용합니다.
함수는 교환법칙(피연산자 순서가 결과에 영향 없음)과 결합법칙을 만족해야 합니다.
PySpark에서 reduce() 액션 예시
x = [1,3,4,6]
RDD = sc.parallelize(x)
RDD.reduce(lambda x, y : x + y)
14
saveAsTextFile() 액션은 각 파티션을 개별 파일로 하여 디렉터리 안에 텍스트 파일로 RDD를 저장합니다.RDD.saveAsTextFile("tempFile")
coalesce()로 RDD를 단일 텍스트 파일로 저장할 수 있습니다.RDD.coalesce(1).saveAsTextFile("tempFile")
PySpark 페어 RDD용 RDD 액션
페어 RDD 액션은 키-값 데이터를 활용합니다.
예:
countByKey()
collectAsMap()
countByKey()는 (K, V) 타입에만 사용됩니다.
countByKey() 액션은 각 키의 요소 개수를 셉니다.
간단한 리스트에서의 countByKey() 예시
rdd = sc.parallelize([("a", 1), ("b", 1), ("a", 1)])
for kee, val in rdd.countByKey().items():
print(kee, val)
('a', 2)
('b', 1)
collectAsMap()은 RDD의 키-값 쌍을 딕셔너리로 반환합니다.
간단한 튜플 예시
sc.parallelize([(1, 2), (3, 4)]).collectAsMap()
{1: 2, 3: 4}
PySpark로 배우는 빅데이터 기초