5-tuple ที่ไม่ซ้ำกันเรียงตามลำดับ
บทเรียนก่อนหน้าได้แนะนำการดำเนินการที่ช่วยกำจัดข้อมูลซ้ำและดึงเฉพาะระเบียนที่ไม่ซ้ำกัน และในแบบฝึกหัดก่อนหน้าได้ดึง 5-tuple ที่พบบ่อยออกมาแล้ว คราวนี้จะนำทั้งสองความสามารถมารวมกัน เพื่อค้นหา 5-tuple ที่ไม่ซ้ำกันและเรียงตามตัวอักษรจากมากไปน้อย
ตาราง text ประกอบด้วยข้อความจากสี่บทแรกของ Sherlock Holmes โดยมีคอลัมน์ดังนี้: word, id และ part
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Introduction to Spark SQL in Python
คำแนะนำการฝึกหัด
- ดึง 5-tuple ที่ไม่ซ้ำกัน 10 รายการสุดท้าย โดยเรียงตามตัวอักษรจากมากไปน้อย
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Unique 5-tuples sorted in descending order
query = """
SELECT ____ w1, w2, w3, w4, w5 FROM (
SELECT word AS w1,
____(word,____) OVER(PARTITION BY ____ ORDER BY ____ ) AS w2,
____(word,____) OVER(PARTITION BY ____ ORDER BY ____ ) AS w3,
____(word,____) OVER(PARTITION BY ____ ORDER BY ____ ) AS w4,
____(word,____) OVER(PARTITION BY ____ ORDER BY ____ ) AS w5
FROM text
)
ORDER BY w1 DESC, w2 DESC, ____ DESC, w4 ____, ____ ____
LIMIT 10
"""
df = spark.sql(query)
df.show()