加载 SMS 垃圾短信数据
您已经看到可以直接从数据推断数据类型。有时更方便的是直接控制列类型。您可以通过定义显式模式来实现。
文件 sms.csv 包含一组 SMS 短信,这些短信被分类为"spam"(垃圾)或"ham"(正常)。这些数据改编自 UCI Machine Learning Repository。共有 5,574 条短信,其中 747 条被标注为垃圾短信。
关于 CSV 格式的说明:
- 没有表头记录,且
- 字段以分号分隔(这并非默认分隔符)。
数据字典:
id—— 记录标识符text—— 短信内容label—— 垃圾或正常(整数;0 = 正常,1 = 垃圾)
本练习是课程的一部分
使用 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.____()