เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

การโหลดข้อมูลสแปม SMS

ที่ผ่านมาเราเห็นแล้วว่า Spark สามารถอนุมานชนิดข้อมูลจากข้อมูลได้โดยตรง แต่บางครั้งการกำหนด schema อย่างชัดเจนก็ให้ความยืดหยุ่นมากกว่า

ไฟล์ sms.csv ประกอบด้วยข้อความ SMS ที่ถูกจัดประเภทเป็น 'spam' หรือ 'ham' ข้อมูลนี้ปรับมาจาก UCI Machine Learning Repository โดยมีข้อความ SMS ทั้งหมด 5,574 ข้อความ ซึ่ง 747 ข้อความถูกระบุว่าเป็นสแปม

หมายเหตุเกี่ยวกับรูปแบบ CSV:

  • ไม่มีแถวส่วนหัว และ
  • ฟิลด์ถูกคั่นด้วยเครื่องหมายเซมิโคลอน (ซึ่งไม่ใช่ตัวคั่นค่าเริ่มต้น)

พจนานุกรมข้อมูล:

  • id — ตัวระบุระเบียน
  • text — เนื้อหาของข้อความ SMS
  • label — spam หรือ ham (จำนวนเต็ม โดย 0 = ham และ 1 = spam)

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

Machine Learning with PySpark

ดูคอร์ส

คำแนะนำการฝึกหัด

  • กำหนด schema ของข้อมูล โดยระบุชื่อคอลัมน์ ("id", "text" และ "label") พร้อมชนิดข้อมูลของแต่ละคอลัมน์
  • อ่านข้อมูลจากไฟล์ที่มีตัวคั่นชื่อ "sms.csv"
  • แสดง schema ของ 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.____()
แก้ไขและรันโค้ด