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
好了 加油喲