Spark的基本介绍

Spark简介 

1.功能

2.历史

3.BDAS生态系统

4.系统局限性及优势

5.Spark程序实例

6.弹性分布式数据集RDD

7.RDD两类基本函数


  1.Spark是基于内存计算的大数据分布计算框架,具有实时性,高容错性,高可伸缩性等优点,并且支持多计算范式。

  2.2014年成为Apache基金会顶级项目

  3.Spark具有配套的BDAS生态系统 如下图所示


          Mesos:资源管理与任务调度器

          HDFS:分布式文件存储系统

          tachyon:分布式内存文件系统,用于缓存数据,快速查询。

          Spark:核心计算引擎

          Spark Streaming/SQL、Graphx、MLlib:分别为Spark提供流式计算和数据库访问服务、图计算(比如PR算法)以及机器学习函数。

   4.Spark的一些优缺点

        Advantages:

               a.提供计算范式的支持

               b.易用性和兼容性(核心代码量少,可以在JAVA、Python等语言环境中实现)

               c.社区活跃度高,Contributor数量多

        Disadvantages:

               a.重复开发

               b.资源管理与分配问题

               c.系统组合问题?

 5.Spark程序实例

        a.输入构造RDD——>b.转换Transformation——>c.输出Action 

        |<-数据结构->|   +   |<--------算法(两类RDD函数)------------->|

      

val file = sc.textFile("hdfs://XXX")  //a

val errors = file.filter(line=>line.contans("ERROR")) //b

val errors.count()  //c

6.弹性分布式数据集RDD

   分布式数组,将切分数据成块,分布在集群中不同节点,通过RDD进行管理,有以下6个属性

    a.partition(数据块列表)

    b.compute(计算类型)

    c.denpendencies(与其他RDD联系)

    d.partitoner(数据分区算法?)

    e.preferredLocations(数据块IP)


7.RDD两种基本函数

     a.Transformation操作是延迟计算的(Map,group by等)

     b.Action算子触发Spark提交Job,并输出系统(reduce、collect、count等)

Spark是一款快速、通用、可扩展的大数据处理引擎,有着丰富的API和数据处理组件。以下是Spark基本语句介绍: 1. 创建RDD:使用SparkContext对象的parallelize()方法可以将一个集合转化为RDD。例如,下面的代码创建了一个包含1到10整数的RDD。 ``` val rdd = sc.parallelize(1 to 10) ``` 2. 转化操作:Spark支持多种转化操作,如map、filter、flatMap、union等。例如,下面的代码将rdd中的每个元素都加1。 ``` val rdd2 = rdd.map(x => x + 1) ``` 3. 行动操作:行动操作会触发Spark计算并返回结果。例如,下面的代码使用reduce()方法将rdd2中的元素相加。 ``` val sum = rdd2.reduce((x, y) => x + y) ``` 4. 键值对RDD操作:Spark还支持基于键值对的操作,如reduceByKey、groupByKey、sortByKey等。例如,下面的代码将rdd2转化为键值对RDD,并根据键进行求和。 ``` val kvRdd = rdd2.map(x => (x % 2, x)) val sumByKey = kvRdd.reduceByKey((x, y) => x + y) ``` 5. Spark SQL:Spark SQL是Spark的另一个组件,用于处理结构化数据。可以使用SparkSession对象来创建DataFrame或Dataset,并执行SQL查询。例如,下面的代码从一个json文件中创建DataFrame,并执行查询。 ``` val df = spark.read.json("file.json") df.createOrReplaceTempView("people") val result = spark.sql("SELECT * FROM people WHERE age > 18") ``` 这些是Spark基本语句,可以帮助你开始使用Spark进行数据处理和分析。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值