博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
RDDs相关概念介绍
阅读量:186 次
发布时间:2019-02-28

本文共 2058 字,大约阅读时间需要 6 分钟。

一 Driver program
包含程序的main()方法,RDDs的定义和操作。
它管理很多节点,我们称作executors
二 SparkContext
1 介绍
Driver program通过SparkContext对象访问Spark
SparkContext对象代表和一个集群的连接
在Shell中SparkContext自动创建好了,就是sc
2 示例
scala> val lines = sc.textFile("/root/helloSpark.txt")lines: org.apache.spark.rdd.RDD[String] = /root/helloSpark.txt MapPartitionsRDD[1] at textFile at 
:24
三 RDDs
1 介绍
Resilient  distributed datasets(弹性分布式数据集,简写RDDs)
这些RDDs,并行的分布在整个集群中。
RDDs是Spark分发数据和计算的基础抽象类。
一个RDD是一个不可改变的分布式集合对象。
Spark中,所有的计算都是通过RDDs的创建,转换,操作来完成的。
一个RDD由许多paritions(分片)组成。
每个分片包括一部分数据,partitions可在集群的不同节点上计算。
分片是Spark并行处理的单元,Spark顺序的,并行的处理分片。
2 示例
scala> lines.count()res0: Long = 3
四 RDDs的创建方法
方法一:通过集合创建
把一个存在的集合传给SparkContext的parallelize()方法,测试用
val rdd=sc.parallelize(Array(1,2,2,4),4)
第1个参数:待并行处理的集合,第2个参数:分区个数。
scala> val rdd=sc.parallelize(Array(1,2,2,4),4)rdd: org.apache.spark.rdd.RDD[Int] = ParallelCollectionRDD[2] at parallelize at 
:24scala> rdd.count()res2: Long = 4scala> rdd.foreach(println)1224scala> rdd.foreach(println)1224
方法二:通过加载外部数据集
scala> val lines = sc.textFile("/root/helloSpark.txt")
五 Scala的基础知识
1 Scala的变量声明
在Scala中创建变量的时候,必须使用val或var
val:变量不可修改,一旦分配不能重新指向别的值。
var:分配后,还可以指向类型相同的值。
2 举例
scala> lines=sc.textFile("/root/test.txt")
:26: error: reassignment to val lines=sc.textFile("/root/test.txt") ^scala> var lines2=sc.textFile("/root/test.log")lines2: org.apache.spark.rdd.RDD[String] = /root/test.log MapPartitionsRDD[8] at textFile at
:24scala> lines2=sc.textFile("/root/test.txt")lines2: org.apache.spark.rdd.RDD[String] = /root/test.txt MapPartitionsRDD[10] at textFile at
:26
3 Scala的匿名函数和类型推断
lines.filter(line=>line.contains("world"))
定义一个匿名函数,接收一个参数line
使用line这个String类型变量上的contains方法,并且返回结果。
line的类型不需指定,能够推断出来。
4 实战
scala> val lines2=lines.filter(line=>line.contains("hello"))lines2: org.apache.spark.rdd.RDD[String] = MapPartitionsRDD[13] at filter at 
:26scala> lines2.collect()res7: Array[String] = Array(go to home hello java, so many to hello word kafka java)
你可能感兴趣的文章