CommencerCommencez gratuitement

Charger des données SMS spam

Vous avez vu qu'il est possible d'inférer les types directement à partir des données. Il est parfois plus pratique de contrôler explicitement les types de colonnes. Pour cela, vous définissez un schéma explicite.

Le fichier sms.csv contient une sélection de messages SMS classés soit comme « spam » soit comme « ham ». Ces données ont été adaptées du UCI Machine Learning Repository. Au total, 5 574 SMS sont présents, dont 747 étiquetés comme spam.

Remarques sur le format CSV :

  • pas d'en-tête et
  • champs séparés par un point-virgule (ce n'est pas le séparateur par défaut).

Dictionnaire des données :

  • id — identifiant d'enregistrement
  • text — contenu du message SMS
  • label — spam ou ham (entier ; 0 = ham et 1 = spam)

Cet exercice fait partie du cours

<cours>Apprentissage automatique avec PySpark</cours>
Voir le cours

Instructions de l’exercice

  • Spécifiez le schéma des données en indiquant les noms de colonnes ("id", "text" et "label") ainsi que leurs types.
  • Lisez les données depuis un fichier délimité nommé "sms.csv".
  • Affichez le schéma du DataFrame obtenu.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

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.____()
Modifier et exécuter le code