RDD常用方法之subtract&intersection&cartesian

subtract

Return an RDD with the elements from `this` that are not in `other` .

def subtract(other: RDD[T]): RDD[T]
def subtract(other: RDD[T], numPartitions: Int): RDD[T]
def subtract(other: RDD[T], p: Partitioner): RDD[T]
val a = sc.parallelize(1 to 5)
val b = sc.parallelize(1 to 3)
val c = a.subtract(b)
c.collect
 Array[Int] = Array(4, 5)

intersection

Return the intersection of this RDD and another one.  The output will not contain any duplicate elements, even if the input RDDs did.   交集

def intersection(other: RDD[T], numPartitions: Int): RDD[T]
def intersection(other: RDD[T], partitioner: Partitioner)(implicit ord: Ordering[T] = null): RDD[T]
def intersection(other: RDD[T]): RDD[T]
val x = sc.parallelize(1 to 10)
val y = sc.parallelize(2 to 8)
val z = x.intersection(y)
z.collect
 Array[Int] = Array(4, 6, 8, 2, 3, 7, 5)

cartesian

Return the Cartesian product of this RDD and another one, that is, the RDD of all pairs of elements (a, b) where a is in `this` and b is in `other` .   笛卡尔积

def cartesian[U: ClassTag](other: RDD[U]): RDD[(T, U)] 
val x = sc.parallelize(List(1,2,3))
val y = sc.parallelize(List(6,7,8))
x.cartesian(y).collect
 Array[(Int, Int)] = Array((1,6), (1,7), (1,8), (2,6), (3,6), (2,7), (2,8), (3,7), (3,8))
时间: 2024-10-13 13:04:21

RDD常用方法之subtract&intersection&cartesian的相关文章

Spark笔记:RDD基本操作(上)

本文主要是讲解spark里RDD的基础操作.RDD是spark特有的数据模型,谈到RDD就会提到什么弹性分布式数据集,什么有向无环图,本文暂时不去展开这些高深概念,在阅读本文时候,大家可以就把RDD当作一个数组,这样的理解对我们学习RDD的API是非常有帮助的.本文所有示例代码都是使用scala语言编写的. Spark里的计算都是操作RDD进行,那么学习RDD的第一个问题就是如何构建RDD,构建RDD从数据来源角度分为两类:第一类是从内存里直接读取数据,第二类就是从文件系统里读取,当然这里的文件

【spark】RDD操作

RDD操作分为转换操作和行动操作. 对于RDD而言,每一次的转化操作都会产生不同的RDD,供一个操作使用. 我们每次转换得到的RDD是惰性求值的 也就是说,整个转换过程并不是会真正的去计算,而是只记录了转换的轨迹. 当遇到行动操作的时候,才会发生真正的计算,从DAG图的源头开始进行"从头到尾"的计算. 常见的操作 操作类型 函数名 作用 转化操作 map() 参数是函数,函数应用于RDD每一个元素,返回值是新的RDD flatMap() 参数是函数,函数应用于RDD每一个元素,将元素数

JAVA RDD 介绍

RDD,全称Resilient Distributed Datasets(弹性分布式数据集),是Spark最为核心的概念,是Spark对数据的抽象. RDD是分布式的元素集合,每个RDD只支持读操作,且每个RDD都被分为多个分区存储到集群的不同节点上.除此之外,RDD还允许用户显示的指定数据存储到内存和磁盘中,掌握了RDD编程是SPARK开发的第一步. 1:创建操作(creation operation):RDD的创建由SparkContext来负责.2:转换操作(transformation

Spark编程模型及RDD操作

转载自:http://blog.csdn.net/liuwenbo0920/article/details/45243775 1. Spark中的基本概念 在Spark中,有下面的基本概念.Application:基于Spark的用户程序,包含了一个driver program和集群中多个executorDriver Program:运行Application的main()函数并创建SparkContext.通常SparkContext代表driver programExecutor:为某App

Spark Core 的RDD

(1)RDD的介绍 ?????RDD(Resilient Distributed Dataset)叫做分布式数据集,是Spark中最基本的数据抽象,它代表一个不可变(RDD中的数据,不能增删改),可分区.元素可并行计算的集合.??具有数据流的模型的特点,自动容错.位置感知性调度和可伸缩性.RDD允许用户在执行多个查询时显示的将工作集缓存在内存中.后续的查询能够重用工作集,这极大地提升了查询速度.??RDD可以从 三方面理解:??? - 数据集:RDD是数据集合的抽象,是复杂物理介质上存在数据的一

Spark RDD Transformation 简单用例(一)

map(func) /** * Return a new RDD by applying a function to all elements of this RDD. */ def map[U: ClassTag](f: T => U): RDD[U]  map(func) Return a new distributed dataset formed by passing each element of the source through a function func.  将原RDD中的

PySpark之RDD操作

一.什么是RDD A Resilient Distributed Dataset (RDD), the basic abstraction in Spark. Represents an immutable, partitioned collection of elements that can be operated on in parallel. 弹性分布式数据集(RDD),Spark中的基本抽象.表示可以并行操作的元素的不变分区集合. 弹性:可以存储在磁盘或内存中(多种存储级别) 分布:分

Spark的调度

作业调度简介 设计者将资源进行不同粒度的抽象建模,然后将资源统一放入调度器,通过一定的算法进行调度,最终要达到高吞吐或者低访问延时的目的. Spark在各种运行模式中各个角色实现的功能基本一致,只不过是在特定的资源管理器下使用略微不同的名称和调度机制. Application调度 一个Application中包含多个Job,每个Job包含多个Stage,每个Stage包含多个Task,那么Application之间如何调度?多个Job之间如何调度?多个Stage之间如何调度?Task之间延时调度

新手福利:Apache Spark入门攻略

新手福利:Apache Spark入门攻略 作者Ashwini Kuntamukkala  出处:CSDN 本文聚焦Apache Spark入门,了解其在大数据领域的地位,覆盖Apache Spark的安装及应用程序的建立,并解释一些常见的行为和操作. 一. 为什么要使用Apache Spark 时下,我们正处在一个"大数据"的时代,每时每刻,都有各种类型的数据被生产.而在此紫外,数据增幅的速度也在显著增加.从广义上看,这些数据包含交易数据.社交媒体内容(比如文本.图像和视频)以及传感