5 pyspark學習---Broadcast&Accumulator&sparkConf


1 對於並行處理,Apache Spark使用共享變量。當驅動程序將任務發送給集群上的執行者時,集群中的每個節點上都有一個共享變量的副本,這樣就可以用於執行任務了。

2 兩種支持得類型

(1)Broadcast

廣播變量保存所有節點數據備份。該變量緩存在所有機器上,而不是在有任務的機器上發送。下面的代碼塊包含了PySpark的廣播類的詳細信息

1 from pyspark import SparkContext, SparkConf
2 
3 
4 sc = SparkContext()
5 words_new = sc.broadcast(['scala','java','hadoop'])
6 data = words_new.value
7 print 'stored data->%s'%(data)
8 elem=words_new.value[2]
9 print 'priting a particular element in rdd-》%s'%(elem)

(2)Accumulator

累加器變量用於通過結合和交換操作來聚合信息。例如,您可以使用累加器來進行sum操作或計數器(在MapReduce中)。下面的代碼塊包含了PySpark的累加器類的詳細信息

 1 from pyspark import SparkContext 
 2 sc = SparkContext("local", "Accumulator app") 
 3 num = sc.accumulator(10) 
 4 def f(x): 
 5    global num 
 6    num+=x 
 7 rdd = sc.parallelize([20,30,40,50]) 
 8 rdd.foreach(f) 
 9 final = num.value 
10 print "Accumulated value is -> %i" % (final)

3 sparkConf

(1)無論是集群還是單機運行spark運用,需要進行一些參數得設置,這個時候sparkConf就派上用場了。

(2)創建conf以后,同時將會加載spark.*得java系統。這樣就可以使用鏈式編程比如conf.a.b.

(3)常用方法

set(key,value)#設置配置屬性

setMaster(Value)#設置主節點URL

setAppName(valle)#設置應用名稱

get(key,dafaultvalue=none)#獲得配置文件

學習途徑:https://www.tutorialspoint.com/pyspark/pyspark_mllib.htm

好了 加油喲


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM