Spark API 之subtract(差集)
java面试题网站:www.javaoffers.com
subtract差集函数存在三种我们主要针对第一种,常用的也是第一种,而其他两种是差集后的分区策略:
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]
案例:
package spark_api
import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}
object mh_subtract {def main(args: Array[String]): Unit = {val conf = new SparkConf().setAppName("subtract").setMaster("local")val sc = new SparkContext(conf)val rdd = sc.parallelize(List(1,2,3,4,5,6,7,8,9,10))val rdd2 = sc.parallelize(List(1,2,3,4,5,11))//rdd - rdd2val rdd3: RDD[Int] = rdd.subtract(rdd2)val ints: Array[Int] = rdd3.collect()for(i<-ints){println(i)}sc.stop()}
}
打印结果:注意结果中没有11
6
7
8
9
10
案例2:
package spark_api
import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}
object mh_subtract {def main(args: Array[String]): Unit = {val conf = new SparkConf().setAppName("subtract").setMaster("local")val sc = new SparkContext(conf)val rdd = sc.parallelize(List(("a",1),("b",2),("c",3),("d",4)))val rdd2 = sc.parallelize(List(("a",2),("b",2),("c",2),("d",2)))val rdd3: RDD[(String, Int)] = rdd.subtract(rdd2)val tuples: Array[(String, Int)] = rdd3.collect().sortBy(yz=>yz._1)for(yz<- tuples){println(yz.toString())}sc.stop()}
打印结果:
(a,1)
(c,3)
(d,4)
总结:
rdd.subtract(rdd2): rdd 减去 (rdd与rdd2交集),也可以理解为 rdd减去与rdd2相同=剩余rdd的元素,本人简写方式 : A-B=A_剩
当rdd中的元祖元素k v 对时通过 k v 进行判断两个元祖元素是否相同。k v 一致则为相同,否则为不同,此方法通常
用于业务如: 某一时间的新增数据。
Spark API 之subtract(差集)相关推荐
- spark之交集并集差集拉链
spark之交集并集差集拉链 def main(args: Array[String]): Unit = { val sparkConf = new SparkConf().setMaster(&qu ...
- None.org.apache.spark.api.python.PythonAccumulatorV2
完整报错如下: 2019-05-21 15:19:00 WARN NativeCodeLoader:62 - Unable to load native-hadoop library for your ...
- An error occurred while calling None.org.apache.spark.api.java.JavaSparkContext.
最近公司上云,所有大数据环境都迁移到云上.在进行项目迁移时候发现运行报错 py4j.protocol.Py4JJavaError: An error occurred while calling No ...
- Spark API 详解(转)
spark中,slice=partition,一个slice对应一个task,启动task的数量上限取决于集群中核的数量 sc.parallelize(0 until numMappers, numM ...
- Spark API编程动手实战-08-基于IDEA使用Spark API开发Spark程序-01
2019独角兽企业重金招聘Python工程师标准>>> 创建一个Scala IDEA工程: 点击"Next": 点击"Finish"完成工程的 ...
- 通过代码实例来说明spark api mapPartitions和mapPartitionsWithIndex的使用
代码片段1: package com.oreilly.learningsparkexamples.scalaimport org.apache.spark._import org.eclipse.je ...
- Spark API 详解/大白话解释 之 map、mapPartitions、mapValues、mapWith、flatMap、flatMapWith、flatMapValues
重点看mapPartitions 本文转自http://blog.csdn.net/guotong1988/article/details/50555185,所有权力归原作者所有. map(funct ...
- Py4JError: org.apache.spark.api.python.PythonUtils.getPythonAuthSocketTimeout does not exist in the
背景 就是版本没统一 spark和pyspark的版本需要统一 我的spark是3.0.3的 然后使用的是anaconda内的python,安装pyspark的时候没指定版本,默认安装最新的3.2 导 ...
- 《Spark大数据分析:核心概念、技术及实践》一3.5 API
本节书摘来自华章出版社<Spark大数据分析:核心概念.技术及实践>一书中的第3章,第3.5节,作者[美] 穆罕默德·古勒(Mohammed Guller),更多章节内容可以访问云栖社区& ...
- spark (java API) 在Intellij IDEA中开发并运行
Spark 程序开发,调试和运行,intellij idea开发Spark java程序. 分两部分,第一部分基于intellij idea开发Spark实例程序并在intellij IDEA中运行 ...
最新文章
- 传感器融合:自动驾驶领域的另一个突围方向
- android从放弃到精通 第四天 happy
- python自学时间-Python 从入门到精通:一个月就够了!
- SAP ui5 control lifecycle - registration and deregistration
- WebSocket数据加密——AES与RSA混合加密
- 矩阵每一行重复_【剑指offer】65 矩阵中的路径
- Linux加密框架中的算法和算法模式
- AAAI 2021 | 商汤提出BSN++: 时序动作提名生成网络
- 《linux c编程指南》学习手记1
- DeepFaceLab报错,CUDA driver is insufficient 解决方法!
- 简单的Vue计算属性
- phpstorm 常用快捷键及自定义快捷键
- jQuery画廊插件-GalleryView
- 身份证编码前六位对应地区(下)
- android全息投影,超低成本手机全息3D投影制作教程
- 我原以为我不会伤心......
- 500万条微博数据来源分析
- 【入门恩师】 --极致强压下的Linux学习,感谢马哥
- 使用Python开发一个恐龙跑跑小游戏,玩起来
- 【开发随记】【提效】工作习惯那些事系列之三——邮件管理