spark分布式数据集RDD 的创建

本文介绍如何在Spark中启动shell并创建最简单的RDD,演示了如何查看RDD内容,以及如何通过指定分区数量来优化数据分布,并提供了查看分区的具体方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、启动spark

spark-shell --master local[2]

2、创建一个最简单的RDD

val rdd = sc.makeRDD(List(1,2,3,4,5));

3、查看RDD

rdd.collect()
返回
res0: Array[Int] = Array(1, 2, 3, 4, 5)

4、RDD指定分区(这样9个数据,就放在了3个分区中)

val rdd = sc.makeRDD(List(1,2,3,4,5,6,7,8,9),3)

5、查看分区的方法

执行以下代码,定义rddUtil

import org.apache.spark.rdd.RDD
import scala.reflect.ClassTag
object rddUtil {
  def lookPartition[T: ClassTag](rdd: RDD[T]) = {
    rdd.mapPartitionsWithIndex((i: Int, it: Iterator[T]) => {
      val partitionMap = scala.collection.mutable.Map[Int, List[T]]()
      var valueList = List[T]()
      while (it.hasNext) {
        valueList = valueList :+ it.next
      }
      partitionMap(i) = valueList
      partitionMap.iterator
    }).collect().foreach((partitionMap:(Int, List[T])) => {
      val partition = partitionMap._1
      println("partition:["+partition+"]")
      partitionMap._2.foreach {println(_) }
    })
  }
}

执行查看

 rddUtil.lookPartition(rdd)
partition:[0]
1
2
3
partition:[1]
4
5
6
partition:[2]
7
8
9

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值