栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

RDD

RDD

RDD(弹性分布式数据集)是Spark的核心抽象。它是一组元素,在集群的节点之间进行分区,以便我们可以对其执行各种并行操作。

1.parallelize

2/makeRDD

3.textFile

4.saveAsTextFile

makeRDD底层使用的就是parallelize,从内存中生成数据
  def makeRDD[T: ClassTag](
      seq: Seq[T],
      numSlices: Int = defaultParallelism): RDD[T] = withScope {
    parallelize(seq, numSlices)
  }
object Spark_RDD01 {
  def main(args: Array[String]): Unit = {
    val sparkConf = new SparkConf().setMaster("local").setAppName("RDD")
    val sc = new SparkContext(sparkConf)
    val rdd1 = sc.parallelize(Seq(1, 2, 3, 4))
    // makeRDD 底层用的是parallelize()
    val rdd = sc.makeRDD(List(1, 2, 3, 4))
    rdd.collect().foreach(println)
    sc.stop()
  }

}
textFile是从文件中读取数据
object Spark_RDD02 {
  def main(args: Array[String]): Unit = {
    val sparkConf = new SparkConf().setMaster("local").setAppName("RDD")
    val sc = new SparkContext(sparkConf)
    val rdd = sc.textFile("E:\atguiguDemo03\leet-code\spark01\src\main\resources\1.txt")
    rdd.collect().foreach(println)
    sc.stop()
  }

}

这里用的是绝对路径,如果是相对路径的话是针对当前项目的

saveAsTextFile为保持为目录,按照分区的规程保存 saveAsTextFile和makeRDD

如果是内存数据保存的话,则如果有分区的参数则按照分区的参数分区,如果没有的话按照setMaster和2的最小值当作分区的数量。

object Spark_RDD03 {
  def main(args: Array[String]): Unit = {
    // 并行度 分区
    val sparkConf = new SparkConf().setMaster("local[*]").setAppName("RDD")
    val sc = new SparkContext(sparkConf)
    val rdd = sc.makeRDD(List(1, 2, 3, 4))
    // 分区保存,默认为local[*]:cpu数
    rdd.saveAsTextFile("1")

    sc.stop()
  }


}
saveAsTextFile和textFile

如果是文件和saveAsTextFile,还要看当前文件所占的字节数和分区数相除
比如如果是7个字节的话,如果是2个分区的话,那么7/2=3每个分区里为3个字节
那么有7/3个分区≈3个分区

object Spark_RDD04 {
  def main(args: Array[String]): Unit = {
    val sparkConf = new SparkConf().setMaster("local").setAppName("RDD")
    val sc = new SparkContext(sparkConf)
    // 不传参的话为min(local, 2)
    // 传参的话,读取方式就是Hadoop的读取方式
    // 计算方式:
    val rdd = sc.textFile("")
    rdd.saveAsTextFile("1")
    sc.stop()
  }

}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/604507.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号