在本次實戰中,我們的目標是利用Spark SQL實現分組排行榜,特別是計算每個學生分數最高的前3個成績。任務的原始數據由一組學生成績組成,每個學生可能有多個成績記錄。我們首先將這些數據讀入Spark DataFrame,然后按學生姓名分組,并使用窗口函數對學生成績進行降序排序。通過row_number()函數為每個分組的成績分配行號,篩選出行號小于等于3的記錄,即為每個學生分數最高的前3個成績。在實現過程中,我們采用了交互式編程和Spark項目兩種方式。在交互式編程中,我們通過Spark SQL查詢實現分組排行榜,并將結果按指定格式輸出。在Spark項目中,我們創建了Maven項目,添加了相關依賴,配置了Scala SDK,并設置了日志和HDFS配置文件。通過編寫Scala代碼,我們實現了成績的讀取、轉換、統計,并在控制臺輸出了結果。