zoukankan      html  css  js  c++  java
  • Spark RDD

    梗概:

    RDD 其实就是分布式元素集合

    在Spark中,对数据的所有操作不外乎创建RDD、转化已有RDD 以及 调用RDD 操作进行求值。而在这一切背后,Spark会自动将RDD中的数据分发到集群上,并将操作并行化执行。 

    RDD就是一个不可变的分布式对象集合。每个RDD都被分为多个分区,这些分区运行在集群中的不同节点上。 

    RDD的创建:a. 读取一个外部数据集;b. 在驱动器程序里分发驱动器程序中的对象集合(比如 list 和 set) ;

    RDD支持两种类型的操作:转化操作(transformation) 和 行动操作(action);

      a. 转化操作会由一个RDD 生成一个 新的RDD;如filter():

    //调用转化操作 filter()
    >>> pythonLines = lines.filter(lambda line: "Python" in line)

      b. 行动操作会对RDD计算出一个结果;并把结果返回到驱动器程序中,或把结果存储到外部存储系统(如 HDFS)中。

    惰性计算:新产生的RDD在转化操作中并没有真正计算,只有在行动操作中使用到了才去计算,并在转化到操作的整个操作链中优化计算。如:

    //调用转化操作 filter()
    >>> pythonLines = lines.filter(lambda line: "Python" in line)
    
    //调用 first() 行动操作 
    >>> pythonLines.first()
    
    //在行动操作 first() 中,Spark 只需要扫描文件直到找到第一个匹配的行为止,而不需要读取整个文件

      默认情况下,Spark 的RDD会在你每次对它们进行行动操作时重新计算。 

      

      

  • 相关阅读:
    vue滑块拖拽校验
    vue和原生自动聚焦
    vue实现bar左右拖拽
    fastclick插件使用
    三大家族易忘点和案例
    移动端调试工具chrome+devtools
    restful 与 webapi 详解
    .NET Core 中依赖注入框架详解 Autofac
    .NET Core 对象( Transient、Scope、Singleton )生命周期详解 (对象创建以及释放)
    C# 通过DataSet 获取SQL 存储过程返回的多个结果集(tables)
  • 原文地址:https://www.cnblogs.com/mzzcy/p/7107102.html
Copyright © 2011-2022 走看看