RDDs相关概念介绍

一 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 <console>: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 <console>:24
scala> rdd.count()
res2: Long = 4
scala> rdd.foreach(println)
1
2
2
4
scala> rdd.foreach(println)
1
2
2
4
方法二:通过加载外部数据集
scala> val lines = sc.textFile("/root/helloSpark.txt")

五 Scala的基础知识
1 Scala的变量声明
在Scala中创建变量的时候,必须使用val或var
val:变量不可修改,一旦分配不能重新指向别的值。
var:分配后,还可以指向类型相同的值。
2 举例
scala> lines=sc.textFile("/root/test.txt")
<console>: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 <console>:24
scala> lines2=sc.textFile("/root/test.txt")
lines2: org.apache.spark.rdd.RDD[String] = /root/test.txt MapPartitionsRDD[10] at textFile at <console>: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 <console>:26
scala> lines2.collect()
res7: Array[String] = Array(go to home hello java, so many to hello word kafka java)


  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值