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

การค้นหาลำดับคำที่พบบ่อย

ก่อนหน้านี้เราได้เรียนรู้วิธีสร้างคิวรีที่ค้นหาลำดับคำความยาวสาม ("3-tuple") แล้วนำคิวรีนั้นมาใช้เป็น subquery ใน SQL query แบบดั้งเดิม เพื่อค้นหา 3-tuple ที่พบบ่อยที่สุดในเอกสาร ตอนนี้จะทำงานในลักษณะเดียวกัน แต่เปลี่ยนเป็นค้นหา 5-tuple ที่พบบ่อยที่สุดแทน

DataFrame text_df พร้อมใช้งานแล้ว โดยมีข้อมูลจากห้าบทแรกของนิยาย Sherlock Holmes ประกอบด้วยคอลัมน์ word, id, part และ title คอลัมน์ id เป็นจำนวนเต็มที่บ่งบอกลำดับของคำในเอกสาร — คำที่อยู่หลังกว่าจะมีค่า id มากกว่า ส่วนคอลัมน์ part แบ่งข้อมูลออกเป็นบทต่าง ๆ นอกจากนี้ DataFrame text_df ยังถูกลงทะเบียนเป็นตารางชั่วคราวชื่อ text เป้าหมายของเราคือสร้างชุดข้อมูลที่แต่ละแถวแทน 5-tuple หนึ่งชุด พร้อมคอลัมน์ count ที่บอกจำนวนครั้งที่ tuple นั้นปรากฏในชุดข้อมูล

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

Introduction to Spark SQL in Python

ดูคอร์ส

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

  • สร้างคิวรี query เพื่อค้นหา 5-tuple ที่พบบ่อยที่สุด 10 อันดับแรกในชุดข้อมูล

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

# Find the top 10 sequences of five words
query = """
SELECT w1, w2, w3, w4, w5, COUNT(*) AS count FROM (
   SELECT word AS w1,
   LEAD(____) OVER(____ ) AS w2,
   ____ AS w3,
   ____ AS w4,
   ____ AS w5
   FROM text
)
GROUP BY w1, w2, w3, w4, w5
ORDER BY count DESC, w1, w2, w3, w4, w5
LIMIT ____
"""
df = spark.sql(query)
df.show()
แก้ไขและรันโค้ด