大数据编程期末大作业

这篇具有很好参考价值的文章主要介绍了大数据编程期末大作业。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

大数据编程期末大作业

一、Hadoop基础操作

  1. 在HDFS中创建目录 /user/root/你的名字 例如李四同学 /user/root/lisi

    首先我们需要启动hdfs,我们直接在终端输入如下命令:

    start-dfs.sh
    

    我们在终端输入如下命令创建目录:

    hadoop fs -mkdir /user
    hadoop fs -mkdir /user/root
    hadoop fs -mkdir /user/root/***(这里是你自己的名字)
    

    上面是逐个创建文件夹,我们还可以使用参数-p一次性创建多级目录:

    hadoop fs -mkdir -p /user/root/***
    
  2. 创建本地文件a.txt,文件内容:You love Hadoop ,并将改文件上传到HDFS中第1题所创建的目录中

    我们直接在终端的root目录下面创建我们的本地文件并输入题目要求的内容:

    vim a.txt
    

    然后我们再在终端输入上传命令:

    hadoop fs -put a.txt /user/root/***
    
  3. 查看上传到HDFS中的a.txt文件的内容

    我们直接在终端输入查看命令:

    hadoop fs -cat /user/root/***/a.txt
    

    使用rdd对高考分数线进行分析,大数据学习,大数据,课程设计,hadoop

  4. 在Hadoop官方的示例程序包hadoop-mapreduce-examples-3.1.4.jar中,包括计算Pi值的测试模块,使用hadoop jar命令提交计算Pi的MapReduce任务

    我们首先进入到hadoop下的mapreduce目录中:

    cd /usr/local/servers/hadoop/share/hadoop/mapreduce/
    

    然后执行如下命令即可计算Pi:

    hadoop jar hadoop-mapreduce-examples-3.1.3.jar pi 5 5
    

    使用rdd对高考分数线进行分析,大数据学习,大数据,课程设计,hadoop

    可以看出精度不是很高,上面命令后面的两个数字含义是,第一个5是运行5次map任务,第二个5是每个map任务投掷次数,总投掷次数就是两者相乘,想要提高精度就可以让数字变大,但是很容易出现作业计算失败的异常,这是因为计算内存不够,所以不能调的太大。

二、RDD编程

现有一份2019年我国部分省份高考分数线数据文件exam2019.csv,共有四个数据字段,字段说明如表1所示:

​ 表1 高考分数线数据字段说明

字段名称 说明
地区 省、直辖市或自治区
考生类别 考生报考类别,如理科
批次 划定的学校级别,如本科批次
分数线 达到所属批次的最低分

使用rdd对高考分数线进行分析,大数据学习,大数据,课程设计,hadoop

为了解2019年全国各地的高考分数线情况,请使用Spark编程,完成以下需求:

  1. 读取exam2019.csv并创建RDD

    我们首先将该文件上传到我们的终端,我直接放在root目录下的。

    然后我们启动pyspark:

    pyspark
    

    然后我们读取我们的文件并创建RDD:

    data = sc.textFile("file:///root/exam2019.csv")
    
  2. 查找出各地区本科批次的分数线

    # 对RDD数据进行map操作,拆分每一行数据
    data_map = data.map(lambda x: x.split(","))
    
    # 对拆分后的RDD进行filter操作,过滤出本科的数据
    data_filter = data_map.filter(lambda x: x[2] == '本科')
    
    # 对过滤后的RDD进行map操作,抽取出地区和分数线
    data_result = data_filter.map(lambda x:(x[0],x[3]))
    
    # 对抽取后的RDD进行reduceByKey操作,按地区进行分组
    data_reduce = data_result.reduceByKey(lambda x,y:x+','+y)
    
    # 打印结果
    data_reduce.collect()
    

使用rdd对高考分数线进行分析,大数据学习,大数据,课程设计,hadoop

  1. 将结果以文本格式存储到HDFS上,命名为/user/root/你的名字exam2019

    data_reduce.saveAsTextFile("hdfs://localhost:9000/uesr/root/*** exam2019")
    

三、SparkSQL编程

某餐饮企业预备使用大数据技术对过往餐饮点评大数据进行分析以提高服务与菜品质量,实现服务升级,具体情况如下:现有一份顾客对某城市餐饮店的点评数据restaurant.csv,记录了不同类别餐饮店在口味、环境、服务等方面的评分,数据共有12列,前10列数据字段的说明如表2所示,最后两列的数据为空则不描述。

​ 表2 顾客对某城市餐饮店的点评数据字段说明

字段名称 字段名称
类别 餐饮店类别
行政区 餐饮店所在位置区域
点评数 有多少人进行了点评
口味 口味评分
环境 环境评分
服务 服务评分
人均消费 人均消费(单位:元)
城市 餐饮店所在城市
Lng 经度
Lat 纬度

使用rdd对高考分数线进行分析,大数据学习,大数据,课程设计,hadoop

为探究人们对该城市餐饮店的点评分布情况,分析客户在餐饮方面的消费喜好,请使用Spark SQL进行编程,完成如下需求:

  1. 读取restaurant.csv数据,删除最后为空值的两列,再删除含有空值的行

    # 读取文件
    df = spark.read.csv("file:///root/restaurant.csv", header=True)
    
    # 删除最后两列
    df = df.drop(df._c10).drop(df._c11)
    
    # 删除含有空值的行
    df = df.na.drop()
    

    使用rdd对高考分数线进行分析,大数据学习,大数据,课程设计,hadoop

  2. 筛选出口味评分大于7分的数据

    result1 = df.filter(df.口味 > 7)
    

    使用rdd对高考分数线进行分析,大数据学习,大数据,课程设计,hadoop

  3. 统计各类别餐饮店点评数,并按降序排列

    # 选出需要的列,转换成rdd
    dps = df.select('类别', '点评数').rdd
    
    # 计算每种类别餐饮点评数的总和
    dps = dps.map(lambda x:(x[0], int(x[1]))).reduceByKey(lambda x,y: x+y).sortBy(lambda x: x[1], False)
    
    # 将计算得出的表格标签进行修改
    dps = dps.toDF().withColumnRenamed('_1', '类别').withColumnRenamed('_2', '点评数').show()
    

    使用rdd对高考分数线进行分析,大数据学习,大数据,课程设计,hadoop

  4. 将步骤2和步骤3的结果保存到HDFS上,命名为/user/root/你的名字restaurant

    result1.saveAsTextFile("hdfs://localhost:9000/uesr/root/*** kouwei7")
    dps.saveAsTextFile("hdfs://localhost:9000/uesr/root/*** dps")
    

四、SparkStreaming编程

现有一份某饭店的菜单数据文件menu.txt,部分数据如表3所示,每一行有3个字段,分别表示菜品ID、菜名和单价(单位:元)。

​ 表3 某饭店的菜单数据

使用rdd对高考分数线进行分析,大数据学习,大数据,课程设计,hadoop

一位顾客依次点了红烧茄子、京酱肉丝和剁椒鱼头共3个菜,为实时计算顾客点餐的费用,请使用Spark streaming 编程完成以下操作:

  1. 在虚拟机上启动8888端口

    直接在终端输入如下命令:

    nc -lk 8888
    
  2. 使用Spark streaming连接虚拟机的8888端口,并实时统计顾客点餐的总费用

    我们创建一个py程序名为prizeSum.py,并填入如下代码:

from __future__ import print_function
from pyspark import SparkContext
from pyspark.streaming import StreamingContext
import sys


# 从sys.argv中获取主机名和端口号
if len(sys.argv) != 3:
    print("Usage:prizeSum.py <hostname> <port>", file=sys.stderr)
    exit(-1)

# 创建SparkContext
sc = SparkContext(appName="pythonSparkStreamingPrizeSum")

# 创建StreamingContext
ssc = StreamingContext(sc, 5)

# 创建函数,实现累加
def accumulate(values, sums):
    return sum(values) + (sums or 0)

# 设置检查点目录
ssc.checkpoint("file:///root/test/")

initialStateRDD = sc.parallelize([])

# 从指定的主机和端口接收数据流
lines = ssc.socketTextStream(sys.argv[1], int(sys.argv[2]))

# 将数据流中的每一行转换为一个元组
costs= lines.map(lambda x: x.split(" "))

# 将每一行的价格累加
totalCost = costs.map(lambda x: ("总价", int(x[2]))).updateStateByKey(accumulate, initialRDD=initialStateRDD)
totalCost.map(lambda x: x.values())

# 打印结果
totalCost.pprint()

# 启动Streaming处理流
ssc.start()

# 等待程序终止
ssc.awaitTermination()
  1. 启动Spark streaming程序,在8888端口输入顾客所点的菜单数据,如“3 红烧茄子15”,查看顾客本次点餐的总费用

    我们启动我们创建的py程序:

    python3 prizeSum.py localhost 8888
    

使用rdd对高考分数线进行分析,大数据学习,大数据,课程设计,hadoop

使用rdd对高考分数线进行分析,大数据学习,大数据,课程设计,hadoop文章来源地址https://www.toymoban.com/news/detail-779335.html

到了这里,关于大数据编程期末大作业的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 2022 CSP-J CSP-S 第1轮 初赛 第2轮 复赛 分数线 晋级率 获奖名单 汇总 整体成绩分析解读

    2022年CSP-JS初赛北京及全国各省市分数线汇总! 2022年CSP-JS初赛北京及全国各省市分数线汇总! - 知乎 CSP-J/S 2022第一轮认证评级全国分数线各省分数线和晋级率 CSP-J/S 2022第一轮认证评级全国分数线各省分数线和晋级率-童程童美少儿编程招生网 2022 CSP-S1 提高组 第1轮 初赛 视频

    2024年02月12日
    浏览(51)
  • Spark综合大作业:RDD编程初级实践

    Spark综合大作业:RDD编程初级实践 实验配置:操作系统:Ubuntu16.04 | 环境:Spark版本:2.4.0 | 软件:Python版本:3.4.3。 (1)熟悉Spark的RDD基本操作及键值对操作; (2)熟悉使用RDD编程解决实际具体问题的方法。 本次大作业的实验是操作系统:Ubuntu16.04,Spark版本:2.4.0,Python版

    2023年04月26日
    浏览(47)
  • Android期末大作业:使用AndroidStudio开发图书管理系统APP(使用sqlite数据库)

    Android Studio开发项目图书管理系统项目视频展示: 点击进入图书管理系统项目视频 现在是一个信息高度发达的时代,伴随着科技的进步,文化的汲取,人们对于图书信息的了解与掌握也达到了一定的高度。尤其是学生对于知识的渴求更是与日俱增。图书馆作为学生学习知识的

    2024年02月08日
    浏览(57)
  • 大数据编程实验:RDD编程

    一、目的与要求 1、熟悉Spark的RDD基本操作及键值对操作; 2、熟悉使用RDD编程解决实际具体问题的方法。 二、实验内容 1 . 给定 数据集 data1.txt,包含了某大学计算机系的成绩,数据格式如下所示: Tom,DataBase,80 Tom,Algorithm,50 Tom,DataStructure,60 Jim,DataBase,90 Jim,Algorithm,60 Jim,DataSt

    2024年04月25日
    浏览(35)
  • Spark RDD编程 文件数据读写

    从本地文件系统读取数据,可以采用textFile()方法,可以为textFile()方法提供一个本地文件或目录地址,如果是一个文件地址,它会加载该文件,如果是一个目录地址,它会加载该目录下的所有文件的数据。 示例:读取一个本地文件word.txt val textFile中的textFile是变量名称,sc.t

    2024年02月05日
    浏览(42)
  • 数据挖掘期末复习-作业(简答)

    作业 1、数据挖掘的定义? 数据挖掘是从大量的、有噪声的、不完全的、模糊和随机的数据中,提取出隐含在其中的、人们事先不知道的、具有潜在利用价值的信息和知识的过程。 2、数据挖掘主要有哪些技术方向? 答: 数据挖掘的技术可分为:统计方法、机器学习方法、

    2024年02月09日
    浏览(45)
  • SQL server数据库期末大作业

    传染病动态监测系统 背景: 当前社会面临着传染病的严重挑战,特别是近年来新冠肺炎疫情的爆发,更加凸显了传染病监测的必要性和重要性。 传染病是一种可以通过人际接触、空气、食物水源等途径在人与人间传播的疾病。尤其在如今全球化、城市化背景下,传染病的传

    2024年02月03日
    浏览(43)
  • 我的数据仓库与数据挖掘期末大作业重置版

    这是之前已经完成的任务,原本是我的数据仓库与数据挖掘课程的作业。里面都是比较入门的东西,没什么难度。之前学这门课的时候,上了一整个学期的课,几乎都在讲解数学原理。作为数学科目挂了四门的理工蠢材,我整个学期都听得云里雾里,到了学期末的时候突然告

    2024年02月04日
    浏览(47)
  • 2022BUAA数据结构期末大作业的一些想法

            本文写的内容可能在很多巨佬看来属实是一些简单的废话,但我的底子比较薄,很多东西都是想了好久,这篇文章的主要目的实际上也只不过是把我的一些改进的地方记录下来,防止以后忘记。。。 百度、谷歌等互联网搜索引擎提供高效的网页、文档搜索功能,

    2024年02月10日
    浏览(56)
  • 数据库期末大作业:机票预定信息系统数据库设计与实现

    目录 1、需求分析 2、数据库设计 3、数据库实现 4、数据库的运行(数据库操作的相关SQL语句,包括查询、增加、删除、修改等)  5、数据库备份 🌾🌾🌾🌾🌾有完整的word文档、数据库备份,有需要的可以私信找我拿🌾🌾🌾🌾🌾 系统结构简述: 2.1、 概念结构设计(

    2024年02月11日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包