标题:
Spark数据操作—RDD操作(1)
[打印本页]
作者:
look_w
时间:
2019-2-19 15:40
标题:
Spark数据操作—RDD操作(1)
Spark RDD操作
RDD(Resilient Distributed Dataset),弹性分布式数据集是一个容错的,并行的数据结构,可以显式地将数据存储到磁盘和内存中,并能控制数据的分区。RDD有两种操作方式,转换(transformation)和动作(action)。转换是从现有的数据集创建一个新的数据集;动作在数据集上运行计算后,返回一个值给驱动程序。
转换都是惰性的,只有到动作启动时才会真正去取得数据运算。
一、Spark RDD创建操作
RDD数据来源:两个数据来源创建RDD,一种是外部数据源,如HDFS或是本地文件系统等其他途径读入文件建立分布数据集;另一种是通过spark所提供的方法来创建数据,parallelize()创建一个能够并行操作的分布数据集。
1.外部数据源
通过SparkContext的textFile方法读入文件建立一个分布数据集。
deftextFile(path: String, minPartitions: Int = defaultMinPartitions): RDD[String]
val distFile1 = sc.textFile("data.txt") //本地当前目录下的文件
val distFile2 = sc.textFile("hdfs://ip:port/user/names.txt") //HDFS文件
val distFile3 = sc.textFile("file:/input/data.txt") //本地指定目录下的文件
val distFile4 = sc.textFile("/input/data1.txt, /input/data2.txt") //读取多个文件
textFile方法第二个参数是用来设置文件的分片数量。默认情况下,Spark会为文件的每一个块创建一个分片。
【注】分片的数量绝不能小于文件块的数量
2.数据集合
val data = Array(1,2,3,4,5,6,7,8,9)
//parallelize(data, nums)中nums是设置分片数量的,默认情况下spark会自动根据集群情况进行设定的
val distData = sc.parallelize(data, 3)
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/)
Powered by Discuz! 7.0.0