• 学习进度笔记13


    今天完成了老师布置的spark实验4的第一部分,使用的是之前未接触过的编程方式,格式也有很大不同。

    实验 4 RDD 编程初级实践

    一、实验目的

    (1)熟悉 Spark RDD 基本操作及键值对操作;

    (2)熟悉使用 RDD 编程解决实际具体问题的方法。

    二、实验平台

    操作系统:Ubuntu16.04

    Spark 版本:2.1.0

    三、实验内容和要求

    1spark-shell 交互式编程

    请到本教程官网的“下载专区”的“数据集”中下载 chapter5-data1.txt,该数据集包含

    了某大学计算机系的成绩,数据格式如下所示:

    Tom,DataBase,80

    Tom,Algorithm,50

    Tom,DataStructure,60

    Jim,DataBase,90

    Jim,Algorithm,60

    Jim,DataStructure,80

    ……

    请根据给定的实验数据,在 spark-shell 中通过编程来计算以下内容:

    先新建文件夹sparkdata,将数据文件上传到目录/root/spark/sparkdata/Data01.txt

    (1)该系总共有多少学生;

    首先获取该数据文件,用.split对数据文件进行分割并取每行的第一段数据,使用distinct去重,计算总数并输出。 

    (2)该系共开设来多少门课程;

    该操作与上个操作基本一致,唯一的不同就是对数据进行分割时取每行的第二段数据。

    (3)Tom 同学的总成绩平均分是多少;

    先找到Tom的所有数据,截取出来并输出

     

    然后截取数据取每行数据的第一段和最后一段并将最后一段定义为int类型,mapValues是对值的操作,不操作key使数据变成(Tom,(26,1))

    接着需要按key进行reducekey合并当将Tom进行reduce后这里的(x,y) 表示的是(26,1)(12,1)然后对value进行操作,最后输出。

    (4)求每名同学的选修的课程门数;

    首先截取数据并取第一段和第二段数据,然后改变数据的值为(课程,1

    然后将按照key进行合并,将统一key的值相加,并取其值。

    输出所有人的修课门数

    (5)该系 DataBase 课程共有多少人选修;

    使用filter记性数据的过滤,让课程等于database并计算数据的行数即可。

    (6)各门课程的平均分是多少;

    (7)使用累加器计算共有多少人选了 DataBase 这门课。

  • 相关阅读:
    【MM系列】SAP库龄报表逻辑理解
    【MM系列】SAP技巧之更改布局
    【MM系列】SAP里批量设置采购信息记录删除标记
    《跃迁-从技术到管理的硅谷路径》读书笔记
    Java安全编码标准
    web安全/渗透测试--1--web安全原则
    使用spring validation完成数据后端校验
    9 个Java 异常处理的规则
    程序员必看:给你一份详细的Spring Boot知识清单
    Java架构技术知识点梳理
  • 原文地址:https://www.cnblogs.com/lijiawei1-2-3/p/14288732.html
Copyright © 2020-2023  润新知