시작하기무료로 시작하기

주석 처리된 행 제거하기

상사는 새 데이터셋에 대해 복잡한 파싱을 수행해 달라고 요청했어요. 이 데이터는 ImageNet 데이터셋의 주석 데이터이며, 특히 개 품종과 이미지에서의 식별에 초점을 맞춥니다. 실제 분석을 하기 전에, 잘못되었거나 유효하지 않은 데이터를 여러 부분에서 정리해야 해요. 문서의 전체 스키마는 알려져 있지 않으므로, 빠른 분석을 위해 우선 모든 행을 단일 열로 가져오려고 합니다.

먼저, 데이터셋에서 모든 주석 처리된 행을 제거해야 해요.

spark 컨텍스트와 기본 CSV 파일(annotations.csv.gz)은 이미 준비되어 있어요. col 함수도 사용할 수 있어요.

이 연습은 강의의 일부입니다

PySpark로 데이터 정제하기

강의 보기

연습 안내

  • annotations.csv.gz 파일을 DataFrame으로 불러와서 행 수를 계산하세요. 구분자는 | 로 지정하세요.
  • 데이터에서 # 로 시작하는 행의 개수를 조회하세요.
  • 파일을 새 DataFrame으로 다시 불러오되, 옵션에서 주석 문자를 지정하여 주석 처리된 행을 제거하세요.
  • 새 DataFrame의 행 수를 세고, 차이가 기대한 대로인지 확인하세요.

실습형 인터랙티브 연습

이 예제를 이 샘플 코드를 완성하여 풀어보세요.

# Import the file to a DataFrame and perform a row count
annotations_df = spark.read.____('____', sep=____)
full_count = annotations_df.____

# Count the number of rows beginning with '#'
comment_count = annotations_df.____(col('_c0').____('#')).count()

# Import the file to a new DataFrame, without commented rows
no_comments_df = ____.____.____('____', ____=____, comment='____')

# Count the new DataFrame and verify the difference is as expected
no_comments_count = no_comments_df.count()
print("Full count: %d\nComment count: %d\nRemaining count: %d" % (____, ____, ____))
코드 편집 및 실행