zoukankan      html  css  js  c++  java
  • 3.RDD详解和创建RDD方式

    Spark 可以简单概括为 3 点:
          Scala 语法
          RDD 操作(Transform & Action
          分布式化
          做 Spark 开发, 其实就是用 Scala 语言进行 RDD 操作, Spark 会自动将 RDD 中的数据分发到集群上, 并将操作并行化执行。
          Java 工程师做分布式开发的话, 常用 MapreduceScala 工程师做分布式开发,
    SparkScala 编程语言具有很多优秀特性, 实现相同功能时代码量是 Java 1/5, 而且更加易读易懂。  1.1 RDD



    1.1 RDD

    Spark 对数据的核心抽象——弹性分布式数据集(Resilient Distributed Dataset,简称RDD)。

    在Spark 中,对数据的所有操作不外乎创建RDD和操作RDD 。而在这一切背后,Spark 会自动将RDD 中的数据分发到集群上,并将操作并行化执行。

     

    Spark 中的RDD 就是一个不可变的分布式对象集合。每个RDD 都被分为多个分区,这些分区运行在集群中的不同节点上。RDD 可以包含Python、Java、Scala 中任意类型的对象,

    甚至可以包含用户自定义的对象。

    1.1 创建RDD

    用户可以使用两种方法创建RDD:  

    ·用SparkContext 的parallelize(Seq) 把Seq转为RDD。该方式常用于学习和实验

    ·读外部数据,通常是读HDFS、消息队列等。

     

    在前边学习中,我们通过SparkContext 的parallelize(Seq)的方法创建RDD,并进行各种学习。

     

    先看看parallelize方法:

    def parallelize[T](seq: Seq[T], numSlices: Int = defaultParallelism) : RDD[T]    

    numSlices是并行度,具有初始值所以调用时可以只给一个参数,这是Scala语言的特性。

     

    比如可以parallelize(seq)  ,可以parallelize(seq ,10) ,并行度为10意味着Spark把数据分割为10份,放在集群上运行。

     

    defaultParallelism 是机器CPU个数。

    # 查看CPU的个数

    cat /proc/cpuinfo| grep"processor"| wc -l

    Seq 包含List、Array等单元素的集合,见下方Scala集合类的组织架构:

     

  • 相关阅读:
    C#数据结构之串
    DevExpress ChartControl 设置它的标题
    [转]DevExpress GridControl 关于使用CardView的一点小结
    将ImageList中的图片转化成byte数组
    可变参数
    jquery动态移除/增加onclick属性详解
    div中英文无法自动换行的解决办法
    jQuery三种事件绑定方式.bind(),.live(),.delegate()
    纯CSS画的基本图形(矩形、圆形、三角形、多边形、爱心、八卦等),NB么?
    关于JS、JQuery、CSS的小知识点
  • 原文地址:https://www.cnblogs.com/braveym/p/12157269.html
Copyright © 2011-2022 走看看