美文网首页数客联盟
Spark RDD数据过滤

Spark RDD数据过滤

作者: Woople | 来源:发表于2016-10-11 18:13 被阅读0次

过滤RDD中的数据通过查看RDD的官方AIP,可以使用两种方法,filter和collect

  • filter
scala> val testRDD = sc.makeRDD(1 to 10)
testRDD: org.apache.spark.rdd.RDD[Int] = ParallelCollectionRDD[25] at makeRDD at <console>:27

scala> val newRDD = testRDD.filter(_>5)
newRDD: org.apache.spark.rdd.RDD[Int] = MapPartitionsRDD[26] at filter at <console>:29

scala> newRDD.collect
res1: Array[Int] = Array(6, 7, 8, 9, 10)

结果正确,newRDD的数据符合过滤掉条件

  • collect
    一般使用collect是为了将RDD转换为Array,但是API中还提供了collect的另一种用法,可以用来过滤RDD中的数据

def collect(f: PartialFunction[T, U])(implicit arg0: ClassTag[U]): RDD[U]
Return an RDD that contains all matching values by applying f.

scala> val newRDD = testRDD.collect { case x if x>5 => x}
newRDD: org.apache.spark.rdd.RDD[Int] = MapPartitionsRDD[31] at collect at <console>:31

scala> newRDD.collect
res2: Array[Int] = Array(6, 7, 8, 9, 10)

同样可以达到filter的效果。

  • 源码分析
    通过Spark的源码可以看到其实带参数的collect就是调用了filter
  /**
   * Return an RDD that contains all matching values by applying `f`.
   */
  def collect[U: ClassTag](f: PartialFunction[T, U]): RDD[U] = withScope {
    val cleanF = sc.clean(f)
    filter(cleanF.isDefinedAt).map(cleanF)
  }

相关文章

  • Spark RDD数据过滤

    过滤RDD中的数据通过查看RDD的官方AIP,可以使用两种方法,filter和collect filter 结果正...

  • Spark RDD Map Reduce 基本操作

    RDD是什么? RDD是Spark中的抽象数据结构类型,任何数据在Spark中都被表示为RDD。从编程的角度来看,...

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

    本文主要是讲解spark里RDD的基础操作。RDD是spark特有的数据模型,谈到RDD就会提到什么弹性分布式数据...

  • 第三章 RDD编程

    RDD(弹性分布式数据集)是Spark的核心概念,Spark在对数据进行操作时,不外乎创建RDD,转化RDD以及调...

  • 面试 | Spark知识点@20190103

    RDD、DataFrame和DataSet RDD是Spark最早的数据模型,叫做弹性分布式数据集。它是Spark...

  • Spark RDD数据关联过滤案例

    前言 最近在专注Spark开发,记录下自己的工作和学习路程,希望能跟大家互相交流成长QQ:86608625 微信...

  • spark RDD详解

    一、 RDD概念 1.1、RDD为什么会产生? RDD是Spark的基石,是实现Spark数据处理的核心抽象。那么...

  • Spark Core - 编程基础

    RDD编程 什么是RDD RDD是Spark的基石,是实现Spark数据处理的核心抽象。RDD是一个抽象类,它代表...

  • Spark三大数据结构

    RDD: 弹性分布式数据集 RDD特点 数据集:RDD是spark中最常见的数据结构。RDD中不直接存储数据,只存...

  • Apache Spark – Comparing RDD, Da

    Spark提供了三种主要的与数据相关的API:RDD、DataFrame、Dataset RDD (Spark1....

网友评论

    本文标题:Spark RDD数据过滤

    本文链接:https://www.haomeiwen.com/subject/pdybyttx.html