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'enregistrementtext— contenu du message SMSlabel— spam ou ham (entier ; 0 = ham et 1 = spam)
Cet exercice fait partie du cours
<cours>Apprentissage automatique avec PySpark</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.____()