大数据技术——RDD编程初级实践

时间:2024-10-11 14:13:08

RDD编程初级实践

    • 1、 需求描述
    • 2、 环境介绍
    • 3、 数据来源描述
    • 4、 数据上传及上传结果查看
    • 5、 数据处理过程描述
      • 交互式编程
      • 2.编写独立应用程序实现数据去重
      • 3.编写独立应用程序实现求平均值问题
    • 6、 经验总结

1、 需求描述

在当今社会,随着大数据的快速发展情况下,大数据已经完全融入到我们的生活中。为了适应各种信息化技术的快速发展,我作为计算机专业的学生,学习大数据这项技术是必不可少的。这次的实验是RDD编程初级实践,我们需要熟悉Spark的RDD基本操作和键值对操作同时还要熟悉使用RDD编程解决实际具体问题的方法。

2、 环境介绍

这次的实验主要用到的是操作系统Ubuntu16.04版本Spark版本:2.4.0以及Python版本:3.4.3。Spark为结构化数据处理引入了一个称为Spark SQL的编程模块。spark-1.6以前它提供了一个称为DataFrame的编程抽象,并且可以充当分布式SQL查询引擎。 SparkSQL在RDD之上抽象出来Dataset/Dataframe 这两个类提供了类似RDD的功能,也就意味用户可以使用map、flatMap、filter等高阶算子,同时也通过了基于列的命名查询,也就是说Dataset/DataFrame提供了两套操作数据的API,这些API可以给Saprk引擎要提供更多信息,系统可以根据这些信息对计算实现一定的优化。Apache Spark是一个围绕速度、易用性和复杂分析构建的大数据处理框架,最初在2009年由加州大学伯克利分校的AMPLab开发,并于2010年成为Apache的开源项目之一,与Hadoop和Storm等其他大数据和MapReduce技术相比,Spark有如下优势: 1.运行速度快,Spark拥有DAG执行引擎,支持在内存中对数据进行迭代计算。官方提供的数据表明,如果数据由磁盘读取,速度是Hadoop MapReduce的10倍以上,如果数据从内存中读取,速度可以高达100多倍。 2.适用场景广泛,大数据分析统计,实时数据处理,图计算及机器学习 3.易用性,编写简单,支持80种以上的高级算子,支持多种语言,数据源丰富,可部署在多种集群中 4.容错性高。Spark引进了弹性分布式数据集RDD (Resilient Distributed Dataset) 的抽象,它是分布在一组节点中的只读对象集合,这些集合是弹性的,如果数据集一部分丢失,则可以根据“血统”(即充许基于数据衍生过程)对它们进行重建。另外在RDD计算时可以通过CheckPoint来实现容错,而CheckPoint有两种方式:CheckPoint Data,和Logging The Updates,用户可以控制采用哪种方式来实现容错。 Spark的适用场景主要有以下几个类型: 1.复杂的批量处理(Batch Data Processing),偏重点在于处理海量数据的能力,至于处理速度可忍受,通常的时间可能是在数十分钟到数小时; 2.基于历史数据的交互式查询(Interactive Query),通常的时间在数十秒到数十分钟之间;3.基于实时数据流的数据处理(Streaming Data Processingÿ