Common people
distinct() 함수로는 고유값을 확인할 수 있었죠. 각 값이 몇 개씩 있는지도 알면 유용합니다. base R에서는 table()로 할 수 있지만, 이는 모든 것을 tibble로 다루는 tidyverse 철학에 맞지 않아 sparklyr에서는 지원하지 않습니다. 대신 count()를 사용해야 합니다. 사용할 때는 따옴표 없이 열 이름을 전달합니다. 예를 들어 열 x, y, z의 고유 조합별 개수를 구하려면 다음처럼 작성합니다.
a_tibble %>%
count(x, y, z)
이 결과는 다음과 동일하지만,
a_tibble %>%
distinct(x, y, z)
… 개수를 담은 추가 열 n이 생긴다는 점이 다릅니다.
count()의 아주 좋은 활용은 어떤 값들이 가장 흔한지 구하는 것입니다. 이를 위해 count()를 호출할 때 sort = TRUE를 지정해 n 열의 내림차순으로 정렬하고, 이어서 slice_max()로 상위 원하는 개수만 남기면 됩니다.(slice_max()는 base R의 head()와 비슷하지만, Spark 같은 원격 데이터셋에서도 잘 동작합니다.) 예를 들어 x, y, z 열 조합 중 가장 흔한 상위 20개를 얻으려면 다음과 같이 합니다.
a_tibble %>%
count(x, y, z, sort = TRUE) %>%
slice_max(20)
이 연습은 강의의 일부입니다
R에서 sparklyr로 시작하는 Spark
연습 안내
이미 spark_conn이라는 Spark 연결이 준비되어 있습니다. Spark에 저장된 트랙 메타데이터에 연결된 tibble은 track_metadata_tbl로 미리 정의되어 있습니다.
track_metadata_tbl에서artist_name열의 값을 세세요.- 행을 인기 순(내림차순)으로 정렬하려면
sort = TRUE를 전달하세요.
- 행을 인기 순(내림차순)으로 정렬하려면
- 결과를
slice_max()로 상위 20개로 제한하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# track_metadata_tbl has been pre-defined
track_metadata_tbl
track_metadata_tbl %>%
# Count the artist_name values
___ %>%
# Restrict to top 20
___