SMS 스팸 데이터 불러오기
앞서 데이터에서 직접 데이터 타입을 추론할 수 있다는 것을 확인했습니다. 경우에 따라 열(column) 타입을 직접 제어하는 것이 편리할 수 있습니다. 이를 위해 명시적인 스키마를 정의합니다.
sms.csv 파일에는 'spam' 또는 'ham'으로 분류된 SMS 메시지 모음이 포함되어 있습니다. 이 데이터는 UCI Machine Learning Repository에서 가져와 가공한 것입니다. 총 5,574개의 SMS 메시지 중 747개가 스팸으로 분류되어 있습니다.
CSV 형식 참고 사항:
- 헤더 레코드 없음
- 필드는 세미콜론으로 구분됨 (기본 구분자(Delimiter)가 아닙니다).
데이터 사전:
id— 레코드 식별자text— SMS 메시지 내용label— 스팸 또는 햄 (정수형; 0 = 햄, 1 = 스팸)
이 연습은 강의의 일부입니다
PySpark로 하는 Machine Learning
연습 안내
- 열 이름(
"id","text","label")과 열 타입을 지정하여 데이터 스키마를 정의하세요. "sms.csv"라는 구분자 파일에서 데이터를 읽어오세요.- 결과로 생성된 DataFrame의 스키마를 출력하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
from pyspark.sql.types import StructType, StructField, IntegerType, StringType
# Specify column names and types
schema = StructType([
StructField("____", IntegerType()),
____("____", ____()),
____("____", ____())
])
# Load data from a delimited file
sms = spark.read.csv(____, sep=____, header=____, ____=____)
# Print schema of DataFrame
sms.____()