更多課程 選擇中心

Python培訓
美國上市教育機構

400-111-8989

Python培訓

如何運用Python編程處理大數據?用Python編程處理大數據的技巧是什么?

  • 發布:Python培訓
  • 來源:51Testing軟件測試網
  • 時間:2019-06-11 09:55

今天我們要分享給你的是如何運用Python編程處理大數據、用Python編程處理大數據的技巧是什么等相關內容,感興趣的話就一起來看看吧:

如果你有個5、6 G 大小的文件,想把文件內容讀出來做一些處理然后存到另外的文件去,你會使用什么進行處理呢?不用在線等,給幾個錯誤示范:有人用multiprocessing 處理,但是效率非常低。于是,有人用python處理大文件還是會存在效率上的問題。因為效率只是和預期的時間有關,不會報錯,報錯代表程序本身出現問題了~

所以,為什么用python處理大文件總有效率問題?

如果工作需要,立刻處理一個大文件,你需要注意兩點:

01大型文件的讀取效率

面對100w行的大型數據,經過測試各種文件讀取方式,得出結論:

with open(filename,"rb") as f:
    for fLine in f:
        pass

方式最快,100w行全遍歷2.7秒。

基本滿足中大型文件處理效率需求。如果rb改為r,慢6倍。但是此方式處理文件,fLine為bytes類型。但是python自行斷行,仍舊能很好的以行為單位處理讀取內容。

02文本處理效率問題

這里舉例ascii定長文件,因為這個也并不是分隔符文件,所以打算采用列表操作實現數據分割。但是問題是處理20w條數據,時間急劇上升到12s。本以為是byte.decode增加了時間。遂去除decode全程bytes處理。但是發現效率還是很差。

最后用最簡單方式測試,首次運行,最簡單方式也要7.5秒100w次。

想知道這個方式處理的完整代碼是什么嗎?掃描文末二維碼,聯系小編可以獲取哦~

那么關于python處理大文件的技巧,從網絡整理三點:列表、文件屬性、字典三個點來看看。

1.列表處理

def fun(x):盡量選擇集合、字典數據類型,千萬不要選擇列表,列表的查詢速度會超級慢,同樣的,在已經使用集合或字典的情況下,不要再轉化成列表進行操作,比如:

values_count = 0
# 不要用這種的
if values in dict.values():
    values_count += 1
# 盡量用這種的
if keys,values in dict:
    values_count += 1

后者的速度會比前者快好多好多。

2. 對于文件屬性

如果遇到某個文件,其中有屬性相同的,但又不能進行去重操作,沒有辦法使用集合或字典時,可以增加屬性,比如將原數據重新映射出一列計數屬性,讓每一條屬性具有唯一性,從而可以用字典或集合處理:

  return '(' + str(x) + ', 1)'
list(map(fun,[1,2,3]))

使用map函數將多個相同屬性增加不同項。

3. 對于字典

多使用iteritems()少使用items(),iteritems()返回迭代器:

>>> d = {'a':1,'b':2}
>>> for i in d.items() :
....    print i
('a',1)
('b',2)
>>> for k,v in d.iteritems() :
...     print k,v
('a',1)
('b',2)

字典的items函數返回的是鍵值對的元組的列表,而iteritems使用的是鍵值對的generator,items當使用時會調用整個列表 iteritems當使用時只會調用值。

除了以下5個python使用模塊,你還有什么技巧解決大文件運行效率的問題嗎?掃一掃來和我們一起交流,深入了解更多Python實用模塊,快速提升工作效率~

1. 讀寫文件技術,今后會用到測試數據的參數化和測試報告寫作功能中~

2. 數據處理技術,今后測試腳本的測試數據處理過程可以用到~

3. 數據統計分析技術,今后會在測試結果分析中用到

4. 圖表展示技術,在今后的測試框架中相關測試報告會用到

5. 程序自動觸發技術,可用于測試腳本程序的自動執行。

感謝您的閱讀,以上就是達內Python培訓分享給你的如何運用Python編程處理大數據、用Python編程處理大數據的技巧是什么的相關內容,你學會了嗎?更多Python相關的內容盡在達內Python培訓機構官網,敬請關注!

免責聲明:內容和圖片源自網絡,版權歸原作者所有,如有侵犯您的原創版權請告知,我們將盡快刪除相關內容。

預約申請免費試聽課

填寫下面表單即可預約申請免費試聽!怕錢不夠?可就業掙錢后再付學費! 怕學不會?助教全程陪讀,隨時解惑!擔心就業?一地學習,可全國推薦就業!

上一篇:Python面向對象編程的知識點都在這了!
下一篇:資深程序員告訴你,如何快速學習python編程

如何運用Python編程處理大數據?用Python編程處理大數據的技巧是什么?

Python面向對象編程的知識點都在這了!

Python的高級特征及用法(部分)

聽說這些Python知識,很少有人知道!

選擇城市和中心
黑龍江省

吉林省

河北省

湖南省

貴州省

云南省

廣西省

海南省

4438全国大成网人网站