시작하기무료로 시작하기

스키마 확인

이전에 배운 것처럼, Spark의 ALS 구현에서는 movieIduserId가 정수형 자료형이어야 합니다. 많은 데이터셋은 Spark에서 올바르게 동작하도록 이에 맞게 전처리가 필요해요. 흔한 문제는 Spark가 숫자를 문자열로, 혹은 그 반대로 인식하는 경우입니다.

여기서는 이러한 문제를 해결하기 위해 .cast() 메서드를 사용해 보겠습니다. 먼저 데이터셋의 스키마를 확인해 형식이 올바른지 살펴보세요.

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

PySpark로 추천 엔진 만들기

강의 보기

연습 안내

  • .printSchema()를 사용해 ratings 데이터셋이 ALS가 제대로 작동하는 데 필요한 올바른 자료형을 갖추었는지 확인하세요. userIdmovieId는 정수형인가요? rating은 숫자 형식인가요?
  • ratings 데이터프레임의 각 열이 올바른 자료형이 되도록 수정하세요. 각 열에 cast() 메서드를 호출하고, userIDmovieId 열은 "integer"형으로, rating 열은 "double"형으로 지정하세요. (timestamp 열은 필요하지 않으니 그대로 두어도 됩니다.)
  • 자료형이 올바르게 변경되었는지 확인하기 위해 ratings에 대해 다시 .printSchema()를 호출하세요.

실습형 인터랙티브 연습

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

# Use .printSchema() to see the datatypes of the ratings dataset
ratings.____()

# Tell Spark to convert the columns to the proper data types
ratings = ratings.select(ratings.userId.cast("____"), ratings.movieId.cast("____"), ratings.rating.cast("____"))

# Call .printSchema() again to confirm the columns are now in the correct format
ratings.____()
코드 편집 및 실행