IniziaInizia gratis

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 record
  • text — contenuto del messaggio SMS
  • label — spam o ham (intero; 0 = ham e 1 = spam)

Questo esercizio fa parte del corso

Machine Learning con PySpark

Visualizza il corso

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.____()
Modifica ed esegui il codice