以下代碼用 Pyspark + IPython 完成
創新互聯公司的客戶來自各行各業,為了共同目標,我們在工作上密切配合,從創業型小企業到企事業單位,感謝他們對我們的要求,感謝他們從不同領域給我們帶來的挑戰,讓我們激情的團隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。專業領域包括做網站、網站建設、電商網站開發、微信營銷、系統平臺開發。
統計日志空行的數量:
讀取日志,創建RDD:
myrdd = sc.textFile("access.log")
不使用累加器:
In [68]: s = 0 In [69]: def f(x): ...: global s ...: if len(x) == 0: ...: s += 1 ...: In [70]: myrdd.foreach(f) In [71]: print (s)
得出結果為:
0
原因是python 的變量,即使是全局變量不能應用在各個計算進程(線程)中同步數據,所以需要分布式計算框架的變量來同步數據,Spark 中采用累加器來解決:
使用累加器
In [64]: s = sc.accumulator(0) In [65]: def f(x): ...: global s ...: if len(x) == 0: ...: s += 1 ...: In [66]: myrdd.foreach(f) In [67]: print (s)
得出正確結果:
14
網站標題:Spark累加器實驗
轉載源于:http://vcdvsql.cn/article18/pdisdp.html
成都網站建設公司_創新互聯,為您提供網站排名、網頁設計公司、動態網站、定制網站、網站收錄、網站維護
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯