博客
关于我
RDDs相关概念介绍
阅读量:189 次
发布时间:2019-02-28

本文共 1477 字,大约阅读时间需要 4 分钟。

Spark Driver Program与RDDs基础入门

在Spark编程中,Driver程序是所有操作的起点,它负责管理集群中的节点(称为executors),并通过SparkContext与集群进行交互。理解Driver程序与SparkContext的关系,以及Resilient Distributed Datasets(RDDs)的核心概念,是 Spark 编程的基础。

SparkContext的作用

SparkContext对象是连接Driver程序与Spark集群的纽带。在Shell环境中,SparkContext会自动创建一个名为sc的对象。通过SparkContext,你可以访问集群中的资源,并执行Spark任务。例如,在以下代码中,sc.textFile("/root/helloSpark.txt")会读取文件并返回一个 RDD(Resilient Distributed Dataset),代表文件内容:

scala> val lines = sc.textFile("/root/helloSpark.txt")lines: org.apache.spark.rdd.RDD[String] = /root/helloSpark.txt MapPartitionsRDD[1] at textFile at ...

RDDs的核心概念

Resilient Distributed Datasets(RDDs)是Spark的基础抽象类,用于分布式处理和数据操作。每个 RDD由多个分片(partitions)组成,每个分片包含数据的子集。分片是Spark并行处理的基本单元,确保数据在集群的不同节点上高效计算。

RDDs的特点

  • 弹性:RDDs可以在失去节点时重新计算数据。
  • 分布式:数据分布在集群的各个节点上,支持并行处理。
  • 不可变:一旦创建, RDD的数据不会改变,但可以通过操作生成新的 RDD。

创建 RDDs

通过以下方法可以创建 RDD:

方法一:通过集合创建

将一个集合传递给 parallelize() 方法,指定分片数:

val rdd = sc.parallelize(Array(1, 2, 2, 4), 4)
  • 第一个参数是待并行处理的集合。
  • 第二个参数是指定分片数。

方法二:通过加载外部数据集

读取外部文件并生成 RDD:

val lines = sc.textFile("/root/helloSpark.txt")

Scala的基础知识

变量声明

在Scala中,变量分为两种:

  • val:变量不可修改,一旦赋值不能重新指向其他值。
  • var:变量可修改,赋值后可以重新指向类型相同的值。

实际操作示例

val lines2 = lines.filter(line => line.contains("hello"))lines2: org.apache.spark.rdd.RDD[String] = MapPartitionsRDD[13] at filter at ...

匿名函数与类型推断

Scala支持匿名函数,函数参数和返回类型可以由编译器推断:

lines.filter(line => line.contains("world"))
  • line是 String 类型,contains 方法返回布尔值。

实战演练

val lines2 = lines.filter(line => line.contains("hello"))lines2.collect() // 返回处理后的数据

转载地址:http://tsej.baihongyu.com/

你可能感兴趣的文章
Objective-C实现攀登 n 级楼梯的不同方式算法(附完整源码)
查看>>
Objective-C实现改变图片亮度算法(附完整源码)
查看>>
Objective-C实现数乘以二multiplyByTwo算法(附完整源码)
查看>>
Objective-C实现数列的和(附完整源码)
查看>>
Objective-C实现数字图像处理算法(附完整源码)
查看>>
Objective-C实现数组切片(附完整源码)
查看>>
Objective-C实现数组去重(附完整源码)
查看>>
Objective-C实现数组循环右移三次(附完整源码)
查看>>
Objective-C实现数组的循环右移(附完整源码)
查看>>
Objective-C实现数组的循环左移(附完整源码)
查看>>
Objective-C实现数组逆置 (附完整源码)
查看>>
Objective-C实现数除以二divideByTwo算法(附完整源码)
查看>>
Objective-C实现整个字符串转换为小写字母算法(附完整源码)
查看>>
Objective-C实现整数N以内的质数算法(附完整源码)
查看>>
Objective-C实现文件传输(附完整源码)
查看>>
Objective-C实现文件分割(附完整源码)
查看>>
Objective-C实现文件拷贝(附完整源码)
查看>>
Objective-C实现文件断点传输(附完整源码)
查看>>
Objective-C实现文件的删除、复制与重命名操作实例(附完整源码)
查看>>
Objective-C实现无序表查找算法(附完整源码)
查看>>