載入 SMS 垃圾訊息資料
你已經看到可以直接從資料推斷資料型別。有時候你會希望能直接控制欄位型別。這時可以自行定義明確的綱要(schema)。
檔案 sms.csv 包含一組 SMS 簡訊,已被標記為「spam」或「ham」。這些資料改編自 UCI Machine Learning Repository。共有 5,574 則簡訊,其中有 747 則被標記為垃圾訊息(spam)。
CSV 格式說明:
- 沒有標頭列,且
- 欄位以分號分隔(這並非預設分隔符)。
資料字典:
id— 記錄識別碼text— 簡訊內容label— 垃圾或正常(整數;0 = 正常 ham,1 = 垃圾 spam)
本練習屬於課程
使用 PySpark 的機器學習
練習說明
- 指定資料綱要,包含欄位名稱(
"id"、"text"、"label")與欄位型別。 - 從名為
"sms.csv"的分隔檔讀取資料。 - 列印產生的 DataFrame 的綱要。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
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.____()