• 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

    好了 加油!

  • 相关阅读:
    Could not continue scan with NOLOCK due to data movement
    Paxos共识算法详解
    从CAP到Paxos算法
    一文读懂拜占庭将军问题
    Paxos 与拜占庭将军问题
    CAP、BASEd、二阶段提交协议、三阶段提交协议、拜占庭将军问题、paxos、Raft、ZAB、NWR
    拜占庭将军
    三分钟教您看懂中本聪是如何解决拜占庭将军问题的
    SimpleDateFormat线程不安全原因及解决方案
    mysql having多个条件
  • 原文地址:https://www.cnblogs.com/lanjianhappy/p/8706669.html
Copyright © 2020-2023  润新知