Caricare i dati SMS spam
Hai visto che è possibile inferire i tipi di dato direttamente dai dati. A volte però è più comodo avere il controllo diretto sui tipi delle colonne. Puoi farlo definendo uno schema esplicito.
Il file sms.csv contiene una selezione di messaggi SMS classificati come "spam" o "ham". Questi dati sono stati adattati dal UCI Machine Learning Repository. In totale ci sono 5574 SMS, di cui 747 etichettati come spam.
Note sul formato CSV:
- nessun record di intestazione e
- i campi sono separati da un punto e virgola (questo non è il separatore predefinito).
Dizionario dei dati:
id— identificatore del recordtext— contenuto del messaggio SMSlabel— spam o ham (intero; 0 = ham e 1 = spam)
Questo esercizio fa parte del corso
Machine Learning con PySpark
Istruzioni dell'esercizio
- Specifica lo schema dei dati, indicando i nomi delle colonne (
"id","text"e"label") e i relativi tipi. - Leggi i dati da un file delimitato chiamato
"sms.csv". - Stampa lo schema del DataFrame risultante.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
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.____()