4 pyspark學習---RDD


開始新的東西,其實很多操作在第二篇的時候就有所介紹啦。在這里繼續學習一遍加深一下印象。

1關於RDD

(1) RDD-----Resilient Distributed Dataset,彈性分布式數據集。這些元素在多個節點上運行和操作,以便在集群上進行並行處理。

(2)RDD是彈性得。

比如map操作,可以拆分成對數據塊得直接計算而不涉及其他節點。這樣得操作只是在一個節點上面直接得操作,不會影響RDD得操作。但是也有比如groupBy,在不完全知道每個key得分布得時候,必須遍歷RDD所有得數據塊,然后將相同得key匯聚。

(2)轉換----->行動 

轉換操作比如Fileter groupBy,map等

行動操作比如collect

2 例子

 1 # coding:utf-8
 2 from pyspark import SparkContext, SparkConf
 3 from operator import add
 4 sc = SparkContext()
 5 
 6 words = sc.parallelize (
 7    ["scala",
 8    "java",
 9    "hadoop",
10    "spark",
11    "akka",
12    "spark vs hadoop",
13    "pyspark",
14    "pyspark and spark"]
15 )
16 #輸出rdd元素個數count
17 counts = words.count()
18 print counts
19 
20 #輸出所有得元素collect
21 print 'elements in RDD->%s'%(words.collect())
22 
23 #輸出滿足條件得元素foreach
24 def f(x):print(x)
25 fore = words.foreach(f)
26 
27 #返回新的RDD 滿足相應得條件 filter
28 words_filter = words.filter(lambda x: 'spark' in x).collect()
29 print words_filter
30 #返回新的RDD 滿足相應得條件 map value都為1
31 words_map = words.map(lambda x: (x,1))
32 
33 #reduce 引入add
34 nums = sc.parallelize([1,2,3,4,5])
35 adding = nums.reduce(add)#15
36 
37 #cache 持久RDD 判斷是否是持久
38 print words.persist().is_cached

好了 加油!


免責聲明!

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



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