劉海 石悅 薛奕飛 張鵬陽 王立新
關鍵詞: 高考錄取分數分析;Hadoop偽分布式集群;PySpark;PyEcharts
0 引言
近年來,大學轉專業的現象愈發普遍,大學生因專業問題導致的學習困擾也時有發生,專業與學生之間的匹配度逐漸受到關注[1]。我國高考目前普遍采取的高考錄取政策是個人志愿與專業調劑相結合的方式。在此過程中,常存在兩方面問題:一是部分考生在報考時,由于對大學專業缺乏足夠了解,受到就業、親友推薦等主客觀因素影響,忽略個人特長和興趣,盲目選擇所謂“適合”的專業;二是考生在填報志愿時,往往更看重院校知名度而非專業喜好,更傾向于選擇熱門專業而非真正喜愛的專業。這導致一些分數達到目標學校但未達到所報專業的考生,為求錄取而接受調劑到其他專業。
興趣是最好的老師。進入大學后,部分學生發現所學專業與個人興趣或特長存在較大差異。能轉專業的學生尚可重拾興趣,但無法轉專業的學生往往會在學習過程中遭遇負面問題。為解決此類問題,須使學生在高考選專業前對大學專業有科學、正確的認識。近年來,隨著大數據技術的飛速發展,我國高校正積極推進數字化轉型,通過引入先進技術,提升教育管理效率和質量[2]。作為高考錄取方,高校可利用智慧校園生態體系的大數據技術,解決錄取數據繁雜的問題,為考生提供直觀、簡潔的高考數據參考,從而科學指導考生精準報考。
1 系統需求分析
在進行系統設計之前,需首先進行需求分析,即根據現有研究背景與現狀,確定系統所需滿足的功能需求[3]。一方面,考生在填報志愿時,對院校了解不足,希望深入了解目標院校的招生情況,如特色專業、歷年錄取數據、專業變動及錄取趨勢等。然而,院校提供的錄取數據往往原始且繁雜,考生難以從中獲取有效信息。另一方面,作為智慧校園建設的一環,院校也希望通過分析往年錄取信息,制定更合理的招生計劃,并更好地展示自身專業特色。本系統以安陽師范學院歷年普通本科錄取數據為例,進行大數據處理、分析及可視化呈現,旨在幫助考生快速了解院校往年錄取情況,并為院校制定招生計劃提供數據支持。
2 系統可行性分析
本系統計劃用的開發環境對計算機硬件要求并不高,都可以在普通電腦上部署。系統計劃使用Py?thon語言進行開發,Python語言開源免費,并且也提供了可以直接在開發工具上下載就可以滿足系統依賴的豐富開源庫。因此,本系統在經濟方面是可行的,無須花費太多資金,但需要付出一定的時間成本。
Linux操作系統安全可靠,穩定性強,操作簡單,是本系統首選的開發環境和集成環境。在Linux操作系統中安裝Hadoop提供的HDFS偽分布式文件存儲系統用來存儲數據,安全可靠。Spark部署簡單,穩定可靠,Python版本PySpark支持Python語言。綜上所示,本項目在技術層面實現難度不大,可行性很強。
從操作方面來看,本平臺前端采用了交互性較強的Web界面,操作簡單、直觀,對使用者的技術要求不高[4]。后端Ubuntu 16.04作為一個以桌面應用為主的Linux操作系統,界面簡單,在支持shell命令的同時,圖形化的界面使用起來也更加方便快捷。在Ubuntu16.04上安裝PyCharm-2021.3.2開發工具供系統開發使用。PyCharm作為流行的Python開發工具,界面簡潔,操作簡單易上手。Hadoop分布式系統安裝方便,提供HDFS分布式存儲組件,只用了解常規的命令即可完成海量數據的存取,而無須了解其構造原理,不僅操作簡單,而且安全可靠。
3 系統設計與實現
3.1 系統數據處理流程設計
對于一個完整的大數據系統開發而言,按照數據的流向來劃分,本系統主要涉及數據采集,數據存儲和預處理、數據分析、數據可視化4個部分。本系統首先通過Python爬蟲技術從安陽師范學院招生官網獲取源數據,然后將爬取到的源數據通過Pandas進行預處理。接著將清洗好的干凈數據以CSV文件的形式上傳到HDFS分布式文件存儲系統中,以免文件丟失或損壞。數據分析階段可以使用PySpark工具直接讀取HDFS內的干凈數據進行RDD編程分析。在大數據數據處理方面,目前的大數據處理框架較多,之所以選擇Spark,是因為Spark的設計遵循“一個軟件棧滿足不同應用場景”的概念,并逐漸形成一個完整的生態系統[5],并且Spark框架與分布式文件存儲系統HDFS具有良好的兼容性,因此可以使用大數據處理框架技術Spark完成錄取分數數據的處理與分析。同樣,我們也將分析結果導出到CSV文件后存入HDFS 內,安全可靠。最后將分析后的數據從HDFS中讀取后,使用PyEcharts工具進行可視化展現。為了更清楚本系統架構,本系統架構設計圖如圖1所示。
3.2 系統功能設計
錄取數據分析系統主要分為5塊,分別為數據采集、數據預處理、數據分析、數據存儲和數據可視化。圖2為系統功能模塊圖。
3.2.1 數據采集模塊
在數據采集模塊,系統使用的方法是比較流行的網絡爬蟲技術。使用Python 的Requests 庫中的re?quests方法模擬瀏覽器向目標網頁發送請求以獲取網頁源代碼。然后在瀏覽器中進入開發者模式分析網頁結構,確定數據位置,最后利用Beautifulsoup庫中方法創建Beautifulsoup對象用來解析網頁源代碼。由于系統需要爬取多個網頁信息,所以將用到的Requests 方法和Beautifulsoup中的方法封裝在Spider類中以方便使用。接著創建data鏈表作為容器,將爬取到的學院歷年專業名稱、科類、年份、最高分、最低分、平均分以及部分年份的招生計劃人數和實錄人數等信息存入data鏈表。最后將data鏈表傳入數據預處理模塊進行加工。
3.2.2 數據預處理模塊
數據預處理模塊是將數據采集來的數據進行規范化、格式化、整齊化的模塊。接收到數據采集模塊傳來的data鏈表后,將多余的數據過濾掉,只保留專業名稱、科類、年份、最高分、最低分、平均分6個屬性。將每行數據重新整合為以這6個屬性為Key,以實際數據為Value的鍵值對的鏈表存入事先創建好的cleandata鏈表中,最后利用CSV庫中的writerows() 方法將cleandata鏈表寫入CSV文件中。處理完成后系統要將得到的全部數據的CSV文件存入HDFS分布式文件系統以防丟失或者損壞。
3.2.3 數據分析模塊
本系統的數據分析模塊主要依靠PySpark第三方庫來完成,通過RDD編程能夠更加高效,快速地計算分析。數據分析時候,需要先將已經預處理后的數據從分布式文件系統中讀取后,創建一個最初的RDD,然后再利用這個RDD進行一系列包含行動和轉化操作的RDD編程來分析本校熱門專業歷年平均分變化趨勢、近年新開大數據專業的各項錄取分數詳細數據、錄取平均分數最高的專業數據等。利用createOr?ReplaceTempView()方法來創建臨時表,然后利用spark.sql()方法編寫SQL語句完成同專業文理錄取分數對比數據,單招文科考生或者理科考生的專業數據分析,錄取最高分與最低分差值較大的專業數據分析等。最后利用Pandas庫中的方法將結果導出到CSV 文件后存入HDFS。
3.2.4 數據存儲
本系統的數據以CSV 的格式存儲。Python 的CSV模塊提供了一系列針對CSV文件的方法,為系統進行數據轉化提供了便利,這種存儲方式可以大大提升開發速度和效率。在完成數據預處理后,系統將干凈的所有數據存儲為CSV文件以供數據分析使用。在數據分析之前,系統會將數據存入HDFS,以保證數據的安全。HDFS具有高容錯性、高可靠性、部署廉價等特性。系統的數據及衍生數據都會存儲到里面,以保證數據的安全,防止數據丟失。
3.2.5 數據可視化
最后的數據可視化模塊系統主要使用PyEcharts 庫。這是非常重要的模塊,也是用戶會直接接觸看到的模塊,系統在這個模塊會將數據分析得到的數據以圖形化的方式展現給用戶,這就考驗我們對數據格式的了解及可視化手段的運用。PyEcharts官方網站提供了多樣的圖表類型以及修改方法,可以對比其中合適的圖表示例來可視化系統的結果數據。比如本校熱門專業歷年平均分變化趨勢可以用折線圖的方式呈現,凸顯變化趨勢,大數據專業的各項錄取分數詳細數據以柱狀圖的方式呈現能使數據更加清晰,錄取平均分數最高的專業數據以柱狀圖的方式呈現更能展現分數差距。錄取最高分與最低分差值較大的專業數據以漏斗圖的方式展現能使用戶更直觀地了解專業錄取情況等。無論是柱狀圖、折線圖還是餅圖,我們要根據數據來選擇可視化方式才能凸顯數據重點以及數據特性。另外,不同顏色以及形狀也是可視化的重要手段。
3.3 系統數據可視化
數據可視化的作用在于提升人們對數據的分析利用程度,通過改變數據的表現形式,提高數據的利用率[6]。通過數據可視化中的柱狀圖、散點圖、雷達圖和熱力圖等圖形化表達方式,可以更直觀和清晰地把數據分析結果展示在人們眼前,給人們以更加直觀和規律化的展示。目前各大高校不同專業招生都有文理學科限制,有的專業只有文科生或者理科生才能報考。我們這里也利用詞云圖為考生展示了只招文科或者理科考生的專業名稱以及其對應的平均分詞云圖,如圖3所示。從圖3可以看出,安陽師范學院只招收文科或者理科的專業詞云圖中,詞條前一部分為專業名稱,后一部分為學科。其中,詞號越大,代表專業對應的平均分越高。
4 結束語
通過對大量冗余數據進行快速、準確和多樣化的分析與展示,大數據技術為各行各業提供了豐富的洞察和決策支持。作為智慧校園生態體系建設的一部分,本系統通過使用大數據技術中的Spark框架對安陽師范學院歷年普通本科錄取數據進行了系統分析,深入地挖掘了數據潛在的應用和研究價值。系統的實現可以幫助很多高考考生在填報志愿之前了解更多安陽師范學院的錄取信息,作為高校方面的安陽師范學院也可以展現院校招生特點和專業特色以吸引生源。系統在其他高校進行推廣后,也可以幫助考生了解其他院校的相關錄取信息和展現其他高校的專業特色,真正實現學生興趣、高考分數和錄取專業相匹配的目的。