Laden von SMS-Spam-Daten
Du hast gesehen, dass man Datentypen direkt aus den Daten ableiten kann. Manchmal ist es praktisch, die Spaltentypen direkt zu steuern. Das machst du, indem du ein explizites Schema festlegst.
Die Datei „ sms.csv
“ hat eine Auswahl von SMS-Nachrichten, die entweder als „Spam“ oder „Ham“ markiert wurden. Diese Daten wurden aus dem UCI Machine Learning Repository übernommen. Es gibt insgesamt 5574 SMS, von denen 747 als Spam markiert wurden.
Hinweise zum CSV-Format:
- kein Kopfdatensatz und
- Felder werden durch ein Semikolon getrennt (dies ist nicht das Standardtrennzeichen).
Datenwörterbuch:
id
— Datensatzkennungtext
— Inhalt der SMS-Nachrichtlabel
— Spam oder Ham (ganze Zahl; 0 = Ham und 1 = Spam)
Diese Übung ist Teil des Kurses
Maschinelles Lernen mit PySpark
Anleitung zur Übung
- Gib das Datenschema an, indem du Spaltennamen (
"id"
,"text"
und"label"
) und Spaltentypen angibst. - Lies Daten aus einer Datei namens „
"sms.csv"
“, die durch Trennzeichen getrennt ist. - Druck das Schema für den resultierenden DataFrame.
Interaktive Ü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.____()