1. 학습
  2. /
  3. 강의
  4. /
  5. R에서 sparklyr로 시작하는 Spark

Connected

연습 문제

행 필터링

열을 선택하는 것과 더불어, 데이터셋에서 중요한 부분을 추출하는 또 다른 방법은 행을 필터링하는 것입니다. 이는 filter() 함수를 사용해 수행합니다. filter()를 사용하려면, 티블과 함께 몇 가지 논리 조건을 전달하면 됩니다. 예를 들어, 열 x의 값이 0보다 크고, 동시에 y의 값이 z와 같은 행만 반환하려면 다음과 같이 작성합니다.

a_tibble %>%
  filter(x > 0, y == z)

연습 문제를 풀기 전에 두 가지 경고를 유의하세요. 첫째, dplyr의 filter() 함수와 stats 패키지의 filter() 함수를 혼동하지 마세요. 둘째, sparklyr는 여러분의 dplyr 코드를 Spark에 전달하기 전에 SQL 데이터베이스 코드로 변환합니다. 즉, 현재 지원되는 필터링 연산이 제한적입니다. 예를 들어, 아래와 같은 코드로 정규 표현식을 사용해 문자형 행을 필터링할 수는 없습니다.

a_tibble %>%
  filter(grepl("a regex", x))

translate_sql() 도움말 페이지에서 사용 가능한 기능을 확인할 수 있습니다. >, !=, %in% 같은 비교 연산자, +, ^, %% 같은 산술 연산자, 그리고 &, |, ! 같은 논리 연산자를 사용할 수 있습니다. 또한 log(), abs(), round(), sin() 등 많은 수학 함수도 지원됩니다.

앞서와 마찬가지로, 대괄호 인덱싱은 현재 동작하지 않습니다.

지침

100 XP

spark_conn으로 Spark 연결이 생성되어 있습니다. Spark에 저장된 트랙 메타데이터에 연결된 티블 track_metadata_tbl도 미리 정의되어 있습니다.

  • 이전 연습 문제와 마찬가지로, select()를 사용해 artist_name, release, title, year를 선택하세요.
  • 그런 다음 결과를 filter()로 파이프해 1960년대의 트랙만 가져오세요.