Wczytywanie danych SMS ze spamem
Widziałeś już, że typy danych można wywnioskować bezpośrednio z zawartości pliku. Czasem jednak wygodniej jest mieć pełną kontrolę nad typami kolumn — osiągasz to, definiując schemat jawnie.
Plik sms.csv zawiera zbiór wiadomości SMS sklasyfikowanych jako „spam" lub „ham". Dane zostały zaadaptowane z repozytorium UCI Machine Learning Repository. Zbiór zawiera łącznie 5574 wiadomości SMS, z czego 747 oznaczono jako spam.
Informacje o formacie CSV:
- brak wiersza nagłówka,
- pola są oddzielone średnikiem (to nie jest domyślny separator).
Słownik danych:
id— identyfikator rekordutext— treść wiadomości SMSlabel— spam lub ham (liczba całkowita; 0 = ham, 1 = spam)
To ćwiczenie jest częścią kursu
Uczenie maszynowe z PySpark
Instrukcje do ćwiczenia
- Zdefiniuj schemat danych, podając nazwy kolumn (
"id","text"i"label") oraz ich typy. - Wczytaj dane z pliku z separatorem o nazwie
"sms.csv". - Wyświetl schemat powstałego DataFrame'u.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
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.____()