黃必棟
(南京鐵道職業(yè)技術(shù)學(xué)院 智能工程學(xué)院 江蘇省南京市 210000)
Python 和R 語言是數(shù)據(jù)分析中的主流編程語言,由于Python 的Pandas 庫的流行,Python 成為數(shù)據(jù)分析的熱門編程語言。使用Pandas 進(jìn)行數(shù)據(jù)分析適用于單機(jī)小規(guī)模數(shù)據(jù)分析場景,無法適應(yīng)大規(guī)模數(shù)據(jù)處理和計(jì)算要求[1][2]。Spark則是大數(shù)據(jù)處理和迭代計(jì)算的主流計(jì)算平臺[3],支持Python語言,PySpark 即是Spark API 的Python 語言接口。由于Python 在數(shù)據(jù)分析中的優(yōu)勢,基于PySpark 的大數(shù)據(jù)分析方法逐漸成為大數(shù)據(jù)分析的熱門方法,在PyPI 上每月有5百萬的下載量,PySpark 是Spark 最新發(fā)展中的重點(diǎn)領(lǐng)域[1]。在使用PySpark 進(jìn)行大數(shù)據(jù)分析時,由于使用方法靈活、功能多變以及Python 語言和Spark 本身的特性,使用者往往較難評估使用PySpark 的不同方法對大數(shù)據(jù)處理的性能影響[4],以及高效地利用現(xiàn)有的Python 數(shù)據(jù)科學(xué)生態(tài)進(jìn)行大數(shù)據(jù)分析。本文將詳細(xì)介紹和分析基于PySpark 的大數(shù)據(jù)分析方法,第1 章介紹了使用PySpark 進(jìn)行數(shù)據(jù)分析方法的特點(diǎn);第2 章分析了PySpark 的基本架構(gòu),Python UDF 的演化和性能影響,以及與Pandas 庫的集成方法;第3 章介紹了Spark 的運(yùn)行方法和最佳實(shí)踐;第4 章提出了PySpark 結(jié)合Pandas 庫進(jìn)行時序分析的方法,通過此方法闡述了如何通過PySpark 和Pandas 進(jìn)行大數(shù)據(jù)時序分析。
數(shù)據(jù)處理和分析中的開發(fā)與軟件開發(fā)的方法和側(cè)重點(diǎn)有所不同,數(shù)據(jù)處理和分析是面向數(shù)據(jù)的編程,強(qiáng)調(diào)開發(fā)的敏捷性和高效性,注重?cái)?shù)據(jù)處理的性能。使用PySpark 進(jìn)行數(shù)據(jù)處理和分析編程,具有較高的開發(fā)效率,同時PySpark的架構(gòu)和設(shè)計(jì)也兼顧數(shù)據(jù)處理的性能?!?br>