RDD介绍

RDD是Spark中的核心概念,代表了不可变、可分区的分布式数据集,具备弹性、容错性。RDD操作包括转换和行动,转换如map、filter,行动如reduce、count。SparkContext是程序入口,用于连接集群。创建RDD可通过本地文件或外部存储系统如HDFS。在使用RDD时需注意数据分布和分区策略,以及转换操作的延迟执行特性。
摘要由CSDN通过智能技术生成

RDD
让开发者大大降低开发分布式应用程序的门槛,提高执行效率。

RDD源码:https://github.com/apache/spark/tree/master/core/src/main/scala/org/apache/spark/rdd

RDD:弹性的分布式数据集,代表了不可变的,可分区的元素,这些元素能被并行操作。
弹性:指的是spark在分布式计算的时候可以容错
分布式:数据可能跨节点存储在不同的节点之上,计算也可以在不同节点上执行

一个RDD由多个partition构成
RDDA: (1,2,3,4,5,6,7,8,9) 对每个元素 +1 ,rdd会对每个partition操作,同时进行

   hadoop001:  Partition1:(1,2,3)  +1

   hadoop002:  Partition2:(4,5,6) +1

   hadoop003: Partition3:  (7,8,9) +1
  1. RDD是抽象类:RDD必然是由子类实现的,使用时直接使用子类即可
  2. 序列化:序列化性能的好坏直接导致框架性能的优劣
  3. Logging:spark1.6可以直接用,2.0不可以用。自己写一个或者拷原来的来用。
  4. T: 泛型,rdd支持各种数据类型

RDD的三大必有特性

  1. 分区多
  2. 计算是作用在每一个分区上的
  3. 每个RDD之间有依赖关系,第一个RDD加载出来的,其余相互依赖

在spark中,计算时,有多少partition就对应有多少个task来执行

SparkContext
http://spark.apache.org/docs/2.2.0/rdd-programming-guide.html#initializing-spark

spark程序的第一步 SparkConf --> SparkContext

sparkcontext告诉spark如何连接一个集群,运行在哪个模式上面 local standalone yarn mesos

创建SparkConf对象(键值对的方式),支持链式set。 SparkConf包含一些应用程序的信息(Application name, master, memory)
在集群上运行时,不要硬编码一个master。要通过spark-submit的方式提交master

 object SparkContextApp {
  def main(args: Array[String]): Unit = {
    val sparkconf = new SparkConf().setAppName("sparkcontextApp11").setMaster("local[2]")
    val sc =new SparkContext(sparkconf)

   // ToDo... 业务逻辑代码

    sc.stop()
  }
}

spark-shell的使用
spark-shell是交互式命令行,直接输入命令就能得到结果,不需要借助idea了;一般用于测试,开发还是要IDEA+MAVEN

  1. 借助于–help
  2. 重要参数
    –master 不建议硬编码指定master
    –name 指定application的名称
    –jars 以逗号分割,传入多个本地jar包
    –conf 指定配置参数
    –queue 队列
    –num-executor 执行端的个数
spark-shell --master local[2]
spark-shell --master local[4] --jars code.jar
spark-shell --master local[4] --packages "org.example:example:0.1"

RDD的创建方式

  1. 把一个集合转换为RDD 测试的时候用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值