샘플링으로 데이터 줄이기
큰 데이터셋으로 작업할 때는 항상 전체 데이터를 다룰 필요가 없습니다. 특히 프로젝트 초기에 무엇을 할지 탐색하는 단계에서는 더 작은 부분집합으로 작업하면 반복 속도를 훨씬 높일 수 있어요. sdf_sample()은 이를 편리하게 도와줍니다. 이 함수는 티블과 반환할 행의 비율을 받습니다. 이 경우에는 비복원 추출로 샘플링하려고 합니다. 데이터셋의 10%를 무작위로 샘플링하려면 아래와 같이 작성하면 됩니다.
a_tibble %>%
sdf_sample(fraction = 0.1, replacement = FALSE)
샘플링 결과는 무작위이므로, 줄어든 데이터셋을 재사용하려면 compute()를 사용해 결과를 다른 Spark 데이터 프레임으로 저장하는 것이 일반적입니다.
a_tibble %>%
sdf_sample(<some args>) %>%
compute("sample_dataset")
결과를 재현 가능하게 만들려면 seed 인수로 난수 시드를 설정할 수 있습니다. 이렇게 하면 코드를 실행할 때마다 같은 무작위 데이터셋을 얻을 수 있어요. 어떤 숫자를 사용하든 상관없으니, 좋아하는 양의 정수를 선택하세요.
이 연습은 강의의 일부입니다
R에서 sparklyr로 시작하는 Spark
연습 안내
이미 spark_conn으로 Spark 연결이 생성되어 있습니다. Spark에 저장된 트랙 메타데이터에 연결된 티블은 track_metadata_tbl로 미리 정의되어 있습니다.
sdf_sample()을 사용해 트랙 메타데이터의 1%를 비복원 추출로 샘플링하세요.- 난수 시드를 설정하기 위해
seed인수에20000229를 전달하세요.
- 난수 시드를 설정하기 위해
- 결과를 계산하여
"sample_track_metadata"라는 이름의 테이블에 저장하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# track_metadata_tbl has been pre-defined
track_metadata_tbl
track_metadata_tbl %>%
# Sample the data without replacement
___ %>%
# Compute the result
___