Läsa in SMS-skräppostdata
Du har sett att det går att härleda datatyper direkt från datan. Ibland är det praktiskt att ha direkt kontroll över kolumntyperna. Det gör du genom att definiera ett explicit schema.
Filen sms.csv innehåller ett urval av SMS-meddelanden som har klassificerats som antingen 'spam' eller 'ham'. Dessa data är anpassade från UCI Machine Learning Repository. Det finns totalt 5 574 SMS, varav 747 har märkts som spam.
Notera följande om CSV-formatet:
- ingen rubrikrad, och
- fälten separeras av semikolon (detta är inte standardseparatorn).
Dataordlista:
id— postidentifieraretext— innehållet i SMS-meddelandetlabel— spam eller ham (heltal; 0 = ham och 1 = spam)
Den här övningen är en del av kursen
Maskininlärning med PySpark
Övningsinstruktioner
- Ange dataschemat med kolumnnamn (
"id","text"och"label") och kolumntyper. - Läs in data från en avgränsad fil med namnet
"sms.csv". - Skriv ut schemat för den resulterande DataFrame:n.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
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.____()