Spark基础RDD练习(一)

本文介绍了Spark中RDD的基础操作,包括并行化创建、sortBy、filter、split、flatMap、union、intersection、distinct、groupByKey、reduceByKey、sortByKey、join、leftOuterJoin、rightOuterJoin、reduce以及cogroup等,通过实例展示了这些操作的使用方法和效果,有助于理解Spark数据处理的核心概念。
摘要由CSDN通过智能技术生成

spark_rdd练习

1.并行化创建RDD

  • 通过并行化生成rdd
    scala> var rdd1 = sc.parallelize(List(123,32,44,55,66,77,88,999))
    rdd1: org.apache.spark.rdd.RDD[Int] = ParallelCollectionRDD[0] at parallelize at :24

  • 查看该RDD的分区数量
    scala> rdd1.partitions.length
    res6: Int = 4

  • 创建时指定分区数量
    scala> var rdd1 = sc.parallelize(List(123,234,345,456,567,678,789,890),3)
    rdd1: org.apache.spark.rdd.RDD[Int] = ParallelCollectionRDD[1] at parallelize at :24

2.sortBy,filter

  • 对rdd1里的每个元素乘以2,然后排序
    创建数组
    scala> val rdd1 = sc.parallelize(List(1,2,9,4,22,6))
    rdd1: org.apache.spark.rdd.RDD[Int] = ParallelCollectionRDD[4] at parallelize at :24
    元素2
    scala> val rdd2 = rdd1.map(x => x
    2).collect
    rdd2: Array[Int] = Array(2, 4, 18, 8, 44, 12)
    倒序
    scala> val rdd3 = rdd1.map(*2).sortBy(x =>x,false).collect
    rdd3: Array[Int] = Array(44, 18, 12, 8, 4, 2)
    正序加分区
    scala> val rdd3 = rdd1.map(
    *2).sortBy(x =>x,true,3).collect
    rdd3: Array[Int] = Array(2, 4, 8, 12, 18, 44)
    知识点:
    Spark内有collect方法,是Action操作里边的一个算子,这个方法可以将RDD类型的数据转化为数组,同时会从远程集群是拉取数据到driver端。
    sortBy函数是在org.apache.spark.rdd.RDD类中实现的,sortBy第一个参数是一个函数,该函数的也有一个带T泛型的参数,返回类型和RDD中元素的类型是一致的;第二个参数是ascending,从字面的意思大家应该可以猜到,是的,这参数决定排序后RDD中的元素是升序还是降序,默认是true,也就是升序;sortBy第三个参数是numPartitions,该参数决定排序后的RDD的分区个数,默认排序后的分区个数和排序之前的个数相等,即为this.partitions.size。

  • 过滤出大于等于50的元素
    创建数组
    scala> val rdd1 = sc.parallelize(List(1,4,6,88,99))
    rdd1: org.apache.spark.rd

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值