SMS-spamgegevens laden
Je hebt gezien dat het mogelijk is om gegevenstypen direct uit de data af te leiden. Soms is het handiger om zelf de kolomtypen te bepalen. Dat doe je door een expliciet schema te definiëren.
Het bestand sms.csv bevat een selectie van sms-berichten die zijn geclassificeerd als 'spam' of 'ham'. Deze data zijn aangepast van de UCI Machine Learning Repository. Er zijn in totaal 5574 sms’jes, waarvan er 747 als spam zijn gelabeld.
Opmerkingen over het CSV-formaat:
- geen kopregel en
- velden zijn gescheiden door een puntkomma (dit is niet de standaard scheidingsteken).
Gegevenswoordenboek:
id— record-idtext— inhoud van het sms-berichtlabel— spam of ham (integer; 0 = ham en 1 = spam)
Deze oefening maakt deel uit van de cursus
Machine Learning met PySpark
Oefeninstructies
- Specifieer het dataschema, met kolomnamen (
"id","text"en"label") en kolomtypen. - Lees data in uit een door scheidingsteken gescheiden bestand met de naam
"sms.csv". - Print het schema van de resulterende DataFrame.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
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.____()