继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

Spark入门(一):核心概念简介

Coley_5
关注TA
已关注
手记 86
粉丝 8548
获赞 6550
1.Spark核心概念简介

1.1程序驱动器

每个 Spark 应用都由一个驱动器程序(driver program)来发起集群上的各种
并行操作。驱动器程序包含应用的 main 函数,并且定义了集群上的分布式数据集,还对这
些分布式数据集应用了相关操作。
驱动器程序通过一个 SparkContext 对象来访问 Spark。这个对象代表对计算集群的一个连
接。
使用Scala初始化SparkContext

import org.apache.spark.SparkConf
import org.apache.spark.SparkContext
import org.apache.spark.SparkContext._

val conf  = new SparkConf().setAppName("wordCount")
val sc = new SparkContext(conf)

1.2弹性分布式数据集(RDDs)

Spark 中的 RDD 就是一个不可变的分布式对象集合。每个 RDD 都被分为多个==分区==,这些
分区运行在集群中的不同节点上。用户可以使用两种方法创建 RDD:读取一个外部数据集,或在驱动器程序里分发驱动器程
序中的对象集合。

// sc 就是SparkContext
val input = sc.textFile("derby.log") //从外部文件读取数据集创建RDD
val words = input.flatMap(line =>line.split(" ")) //从一个RDD生成出另一个RDD
val innerInput = sc.parallelize(Array("java","scala","python")) // 内部创建一个RDD,一般测试是用

1.3WordCount实例

import org.apache.spark.{SparkConf, SparkContext}
object WordCount {
  def main(args: Array[String]): Unit = {
    val conf  = new SparkConf().setAppName("wordCount")
    val sc = new SparkContext(conf) 
    val input = sc.textFile("derby.log")
    val words = input.flatMap(line =>line.split(" "))
    val count  = words.map(word => (word,1)).reduceByKey{ case (x,y) => x+y }
    val out = count.saveAsTextFile("wordcount.txt")
  }
}
2.总结

Spark编程其实就是通过一个驱动器程序创建一个 SparkContext 和一系列 RDD,然后进行并行操作。

打开App,阅读手记
2人推荐
发表评论
随时随地看视频慕课网APP