SMS-Spam-Daten laden
Du hast gesehen, dass sich Datentypen direkt aus den Daten ableiten lassen. Manchmal ist es aber praktischer, die Spaltentypen gezielt festzulegen. Das machst du, indem du ein explizites Schema definierst.
Die Datei sms.csv enthält eine Auswahl an SMS-Nachrichten, die als „spam" oder „ham" klassifiziert wurden. Diese Daten wurden aus dem UCI Machine Learning Repository übernommen. Insgesamt gibt es 5.574 SMS, davon wurden 747 als Spam gekennzeichnet.
Hinweise zum CSV-Format:
- kein Header-Datensatz und
- Felder sind durch ein Semikolon getrennt (das ist nicht der Standard-Trenner).
Datenwörterbuch:
id— Datensatzkennungtext— Inhalt der SMS-Nachrichtlabel— Spam oder Ham (Integer; 0 = ham und 1 = spam)
Diese Übung ist Teil des Kurses
<Kurs>Maschinelles Lernen mit PySpark</Kurs>Übungsanweisungen
- Gib das Datenschema mit Spaltennamen (
"id","text"und"label") und Spaltentypen an. - Lies die Daten aus einer durch Trennzeichen getrennten Datei namens
"sms.csv"ein. - Gib das Schema des resultierenden DataFrames aus.
Interaktive praktische Übung
Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.
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.____()