1. 从集合创建RDD

  • parallelize
def parallelize[T](seq: Seq[T], numSlices: Int = defaultParallelism)(implicit arg0: ClassTag[T]): RDD[T]
目的:从一个Seq集合创建RDD
参数1:Seq集合,必须
参数2:分区数,默认为该Application分配到的资源的CPU核数
scala> var rdd = sc.parallelize(1 to 10)
rdd: org.apache.spark.rdd.RDD[Int] = ParallelCollectionRDD[2] at parallelize at :21scala> rdd.collect
res3: Array[Int] = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)scala> rdd.partitions.size
res4: Int = 15//设置RDD为3个分区
scala> var rdd2 = sc.parallelize(1 to 10,3)
rdd2: org.apache.spark.rdd.RDD[Int] = ParallelCollectionRDD[3] at parallelize at :21scala> rdd2.collect
res5: Array[Int] = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)scala> rdd2.partitions.size
res6: Int = 3
  • makeRDD
def makeRDD[T](seq: Seq[T], numSlices: Int = defaultParallelism)(implicit arg0: ClassTag[T]): RDD[T]
// 这种用法和parallelize完全相同
def makeRDD[T](seq: Seq[(T, Seq[String])])(implicit arg0: ClassTag[T]): RDD[T]
//  该用法可以指定每一个分区的preferred Locations
scala> var collect = Seq((1 to 10,Seq("slave007.lxw1234.com","slave002.lxw1234.com")),
(11 to 15,Seq("slave013.lxw1234.com","slave015.lxw1234.com")))
collect: Seq[(scala.collection.immutable.Range.Inclusive, Seq[String])] = List((Range(1, 2, 3, 4, 5, 6, 7, 8, 9, 10),
List(slave007.lxw1234.com, slave002.lxw1234.com)), (Range(11, 12, 13, 14, 15),List(slave013.lxw1234.com, slave015.lxw1234.com)))scala> var rdd = sc.makeRDD(collect)
rdd: org.apache.spark.rdd.RDD[scala.collection.immutable.Range.Inclusive] = ParallelCollectionRDD[6] at makeRDD at :23scala> rdd.partitions.size
res33: Int = 2scala> rdd.preferredLocations(rdd.partitions(0))
res34: Seq[String] = List(slave007.lxw1234.com, slave002.lxw1234.com)scala> rdd.preferredLocations(rdd.partitions(1))
res35: Seq[String] = List(slave013.lxw1234.com, slave015.lxw1234.com)

2. 从外部存储创建RDD

  • textFile
//从hdfs文件创建
scala> var rdd = sc.textFile("hdfs:///tmp/lxw1234/1.txt")
rdd: org.apache.spark.rdd.RDD[String] = MapPartitionsRDD[26] at textFile at :21scala> rdd.count
res48: Long = 4//从本地文件创建
scala> var rdd = sc.textFile("file:///etc/hadoop/conf/core-site.xml")
rdd: org.apache.spark.rdd.RDD[String] = MapPartitionsRDD[28] at textFile at :21scala> rdd.count
res49: Long = 97  

[scala-spark]9. RDD创建操作相关推荐

  1. Spark算子:RDD创建操作

    关键字:Spark RDD 创建.parallelize.makeRDD.textFile.hadoopFile.hadoopRDD.newAPIHadoopFile.newAPIHadoopRDD ...

  2. Spark RDD创建操作

    从集合创建RDD parallelize def parallelize[T](seq: Seq[T], numSlices: Int = defaultParallelism)(implicit a ...

  3. Spark 的键值对(pair RDD)操作,Scala实现

    一:什么是Pair RDD? Spark为包含键值对对类型的RDD提供了一些专有操作,这些操作就被称为Pair RDD,Pair RDD是很多程序的构成要素,因为它们提供了并行操作对各个键或跨节点重新 ...

  4. 2021年大数据Spark(十三):Spark Core的RDD创建

    RDD的创建 官方文档:http://spark.apache.org/docs/latest/rdd-programming-guide.html#resilient-distributed-dat ...

  5. 在IntelliJ IDEA中创建和运行java/scala/spark程序

    本文将分两部分来介绍如何在IntelliJ IDEA中运行Java/Scala/Spark程序: 基本概念介绍 在IntelliJ IDEA中创建和运行java/scala/spark程序 基本概念介 ...

  6. Spark的RDD序列化

    RDD序列化 1. 闭包检查 从计算的角度, 算子以外的代码都是在Driver 端执行, 算子里面的代码都是在 Executor端执行.那么在 scala 的函数式编程中,就会导致算子内经常会用到算子 ...

  7. Spark的RDD行动算子

    目录 基本概念 算子介绍 1. reduce 2. collect 3. count 4. first 5. take 6. takeOrdered 案例实操1-6 7. aggregate 8. f ...

  8. 10.Spark之RDD及编程接口

    2019独角兽企业重金招聘Python工程师标准>>> 1.起点Hello World val sc = new SparkContext("spark://...&quo ...

  9. Spark _22 _创建DataFrame的几种方式(一)

    创建DataFrame的几种方式 读取json格式的文件创建DataFrame 注意: json文件中的json数据不能嵌套json格式数据. DataFrame是一个一个Row类型的RDD,df.r ...

最新文章

  1. 办公电脑变买为租,“企业惊变”背后神秘推手
  2. window.open()具体解释及浏览器兼容性问题
  3. 深度学习-Tensorflow2基础知识
  4. 从零开始单排学设计模式「UML类图」定级赛 1
  5. SQL Server数据库中批量导入数据的四种方法总结
  6. python 读取文件时报错UnicodeDecodeError: 'gbk' codec can't decode byte 0x80 in position 205: illegal multib
  7. 【Pytorch神经网络理论篇】 02 Pytorch快速上手(二)GPU与CPU张量切换+具有随机值的张量+张量的数学运算
  8. Linux学习(lesson1)
  9. css工程师技巧,web前端工程师必须掌握的技巧–CSS Sprites技术(附基础操作教程)...
  10. c# 实现查找mysql安装路径
  11. 元宇宙引擎脑语言2500令v0.5.6
  12. 一文图解自定义修改el-table样式
  13. Bootstrap V5 图标字体的引入以及使用方法
  14. DanmuVis: Visualizing Danmu Content Dynamics and AssociatedViewer Behaviors in Online Videos
  15. 微信中H5+java+vue获取微信定位等JS-SDK
  16. hadoop——常用端口号——常用的配置文件,3.x与2.x区别
  17. 【Kafka笔记】5.Kafka 多线程消费消息
  18. 设计模式之命令模式详解(故事版)
  19. [自扫盲]skype、IP电话、VOIP、网络电话、互联网电话、IP拨号
  20. 国资委出炉30家整体上市央企名单

热门文章

  1. 20145234黄斐《java程序设计》第六周
  2. 脚本——倒计时,ping,创建用户,作业:ssh并创建用户(未能实现功能)
  3. 深入浅出JProfiler
  4. Oracle11g 备份和恢复的方法
  5. Patrol 7 架构下?的处理方法
  6. GitHub的新服务GIST
  7. hdu 1811(拓扑排序+并查集)
  8. 论文阅读: Direct Monocular Odometry Using Points and Lines
  9. OS之内存管理 ---基本的内存管理策略(二)
  10. centos 安装nginx笔记