집계하기
.min(), .max(), .count() 같은 일반적인 집계 메서드는 모두 GroupedData의 메서드예요. 이 객체는 DataFrame의 .groupBy() 메서드를 호출하면 생성돼요. 자세한 내용은 다음 몇 개의 연습 문제에서 살펴보겠습니다. 지금은 이 함수들을 쓰려면 DataFrame에서 해당 메서드를 호출하면 된다는 점만 기억하세요. 예를 들어, DataFrame df에서 컬럼 col의 최소값을 찾으려면 다음과 같이 할 수 있어요.
df.groupBy().min("col").show()
이 코드는 GroupedData 객체를 만든 다음(그래서 .min()을 사용할 수 있어요), col의 최소값을 찾아 DataFrame으로 반환합니다.
이제 직접 집계를 해볼 차례예요!
SparkSession인 spark와 Spark DataFrame flights가 워크스페이스에 준비되어 있어요.
이 연습은 강의의 일부입니다
PySpark 기초
연습 안내
- PDX에서 출발한 항공편 중 가장 짧은(거리 기준) 비행 거리를
.filter()로 먼저 걸러낸 뒤.min()메서드로 구하세요. 필터링은 SQL 문자열이 아니라 컬럼을 직접 참조해 수행하세요. - SEA에서 출발한 항공편 중 가장 오래 걸린(시간 기준) 비행 시간을
filter()로 걸러낸 뒤.max()메서드로 구하세요. 필터링은 SQL 문자열이 아니라 컬럼을 직접 참조해 수행하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# Find the shortest flight from PDX in terms of distance
flights.filter(____.____ == ____).groupBy().____(____).show()
# Find the longest flight from SEA in terms of air time
flights.filter(____).groupBy().____.show()