Spark-Core RDD的创建
2024-10-07 11:00:34
一、RDD创建的3种方式:
1、从集合中创建RDD
2、从外部存储创建RDD
3、从其他RDD转换得到新的RDD
二、从集合中创建RDD
1、使用parallelize函数创建
scala> val arr = Array(10,20,30,40,50,60)
arr: Array[Int] = Array(10, 20, 30, 40, 50, 60) scala> val rdd1 = sc.parallelize(arr)
rdd1: org.apache.spark.rdd.RDD[Int] = ParallelCollectionRDD[0] at parallelize at <console>:26
2、使用makeRDD函数创建
makeRDD和parallelize是一样的.
scala> val rdd1 = sc.makeRDD(Array(10,20,30,40,50,60))
rdd1: org.apache.spark.rdd.RDD[Int] = ParallelCollectionRDD[0] at makeRDD at <console>:24
3、说明
(1)一旦 RDD 创建成功, 就可以通过并行的方式去操作这个分布式的数据
(2)parallelize和makeRDD还有一个重要的参数就是把数据集切分成的分区数
(3)Spark 会为每个分区运行一个任务(task). 正常情况下, Spark 会自动的根据你的集群来设置分区数
三、从外部存储创建 RDD
Spark可以从任意Hadoop支持的存储数据源来创建分布式数据集
可以是本地文件系统,HDFS、Cassandra、HBase、Amazon S3等
Spark 支持 文本文件, SequenceFiles, 和其他所有的 Hadoop InputFormat
scala> var distFile = sc.textFile("words.txt")
distFile: org.apache.spark.rdd.RDD[String] = words.txt MapPartitionsRDD[1] at textFile at <console>:24 scala> distFile.collect
res0: Array[String] = Array(hello, hello world, how are you, abc efg)
说明:
(1)url可以是本地文件系统文件, hdfs://..., s3n://...等等
(2)如果是使用的本地文件系统的路径, 则必须每个节点都要存在这个路径
(3)所有基于文件的方法, 都支持目录, 压缩文件, 和通配符(*). 例如:
textFile("/my/directory"), textFile("/my/directory/*.txt"), and textFile("/my/directory/*.gz")
(4)textFile还可以有第二个参数, 表示分区数. 默认情况下, 每个块对应一个分区.(对 HDFS 来说, 块大小默认是 128M). 可以传递一个大于块数的分区数, 但是不能传递一个比块数小的分区数
四、从其他 RDD 转换得到新的 RDD
最新文章
- VS2013无法启动&#160;IIS Express Web解决办法
- 怎样实现ZBrush中的智能对称
- navigator.userAgent.indexOf来判断浏览器类型
- 第7篇 ORACLE EBS DEMO虚拟机环境的安装
- 集合上的动态规划---最优配对问题(推荐:*****) // uva 10911
- 安装mysql时提示The host &#39;xxx&#39; could not be looked up with resolveip的解决办法
- Javascript封装弹出框控件
- 《JavaScript高级程序设计》读书笔记 ---单体内置对象
- TensorFlow文档翻译-01-TensorFlow入门
- Lintcode227 Mock Hanoi Tower by Stacks solution 题解
- springcloud 新增微服务
- mac sublime3 无法安装Package Control
- WPF模板(一)详细介绍
- vue之v-bind
- Android Studio支持Java1.8的解决方案
- join方法的使用
- open File Browser in shell
- 主成分分析PCA学习一条龙
- 加密SecurityHelper
- iOS:UITableViewCell使用详解