educoder大数据作业答案

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

第1关:第一题

  • 任务描述
  • 编程要求
  • 测试说明

任务描述

本关任务:根据编程要求,完成任务。

编程要求

打开右侧代码文件窗口,在 BeginEnd 区域补充代码,完成任务。

在本地目录 /data/bigfiles 中有两个文件 a.txtb.txt,现在需要对这两个文件进行合并,并剔除其中重复的内容,将合并结果存储到 /root/result/ 目录下。

下面是 a.txtb.txt存储的内容示例:

20170101    x20170102    y20170103    x20170104    y20170105    z20170106    z......

合并结果按首列升序进行排列。

测试说明

平台将对你编写的代码进行评测,如果与预期结果一致,则通关,否则测试失败。

代码文件:
from pyspark import SparkContext, SparkConf

################ Begin ################

# 创建SparkContext对象
sc = SparkContext('local','remdup')

# 加载两个文件
lines1 = sc.textFile("file:///data/bigfiles/a.txt")
lines2 = sc.textFile("file:///data/bigfiles/b.txt")

# 合并两个文件的内容
lines = lines1.union(lines2)

# 去重操作
distinct_lines = lines.distinct()

# 排序操作
res = distinct_lines.sortBy(lambda x:x)

# 保存结果
res.repartition(1).saveAsTextFile("file:///root/result")

# 关闭SparkContext对象
sc.stop()


################ End ################

第2关:第二题

  • 任务描述
  • 编程要求
  • 测试说明

任务描述

本关任务:根据编程要求,完成任务。

编程要求

打开右侧代码文件窗口,在 BeginEnd 区域补充代码,完成任务。

在本地目录 /data/bigfiles 中有三个文件 Algorithm.txtDatabase.txtPython.txt。其中每行存储的内容由两个字段组成,第一个是学生名字,第二个是学生的成绩。

请你读取这三个文件的内容,计算各个学生的平均成绩(保留两位小数),将输出结果存储到 /root/result2/ 目录下。

下面是上述文件一个样例,供参考。

小明 92小红 87小新 82小丽 90......

输出示例:

('小红',82.88)('小明',81.23)......

输出结果按平均分成绩降序进行排列。

测试说明

平台将对你编写的代码进行评测,如果与预期结果一致,则通关,否则测试失败。

代码文件:
from pyspark import SparkContext

################ Begin ################

# 创建SparkContext对象
sc = SparkContext('local', 'average_score')

# 加载三个文件
file_path_algorithm = "/data/bigfiles/Algorithm.txt"
file_path_database = "/data/bigfiles/Database.txt"
file_path_python = "/data/bigfiles/Python.txt"

data_algorithm = sc.textFile(file_path_algorithm)
data_database = sc.textFile(file_path_database)
data_python = sc.textFile(file_path_python)

# 合并三个文件的内容
merged_data = data_algorithm.union(data_database).union(data_python)

# 完成数据聚合
student_scores = merged_data.map(lambda line: (line.split()[0], float(line.split()[1])))

# 求平均分并排序
average_scores = student_scores.groupByKey().mapValues(lambda scores: round(sum(scores) / len(scores), 2))
sorted_scores = average_scores.sortBy(lambda x: x[1], ascending=False)

# 保存结果
result_path = "/root/result2/"
sorted_scores.saveAsTextFile(result_path)

# 关闭SparkContext对象
sc.stop()

################ End ################

第二关

第2关:第一题

任务描述

本关任务:根据编程要求,完成任务。

编程要求

打开右侧代码文件窗口,在 BeginEnd 区域补充代码,完成任务。

pyspark 中读取 Linux 系统本地文件 /data/bigfiles/data.txt,该数据集包含了某大学计算机系的成绩,数据格式如下所示:

Tom,DataBase,80Tom,Algorithm,50Tom,DataStructure,60Jim,DataBase,90Jim,Algorithm,60Jim,DataStructure,80……

第一列为学生姓名,第二列为课程名称,第三列为课程成绩。

统计该系总共有多少名学生,直接打印输出统计的结果。

输出示例如下:

该系共有学生:n 人

测试说明

平台将对你编写的代码进行评测,如果与预期结果一致,则通关,否则测试失败。

from pyspark import SparkContext

###############Begin##############
# 创建SparkContext对象
sc = SparkContext("local", "Student Count")
# 读取文本文件
lines = sc.textFile("file:///data/bigfiles/data.txt")
# 统计学生人数
arr = lines.map(lambda x:x.split(",")).map(lambda x: x[0])
distinct_res = arr.distinct()
res=distinct_res.count() 
# 打印结果
print("\n该系共有学生:%d 人"%res)
# 关闭SparkContext对象
sc.stop()
###############End################

第2关:第二题

任务描述

本关任务:根据编程要求,完成任务。

编程要求

打开右侧代码文件窗口,在 BeginEnd 区域补充代码,完成任务。

pyspark 中读取 Linux 系统本地文件 /data/bigfiles/data.txt,该数据集包含了某大学计算机系的成绩,数据格式如下所示:

Tom,DataBase,80Tom,Algorithm,50Tom,DataStructure,60Jim,DataBase,90Jim,Algorithm,60Jim,DataStructure,80……

第一列为学生姓名,第二列为课程名称,第三列为课程成绩。

统计该系共开设了多少门课程,直接打印输出统计的结果。

输出示例如下:

该系共有 n 门课程

测试说明

平台将对你编写的代码进行评测,如果与预期结果一致,则通关,否则测试失败。

from pyspark import SparkContext

################ Begin ################

# 创建SparkContext对象
sc = SparkContext("local", "Course Count")

# 读取文本文件
lines = sc.textFile("file:///data/bigfiles/data.txt")

# 统计课程数量
course_count = lines.map(lambda x: x.split(",")[1]).distinct().count()

# 打印结果
print("\n该系共有 %d 门课程" % course_count)

# 关闭SparkContext对象
sc.stop()

################ End ################

第2关:第三题

任务描述

本关任务:根据编程要求,完成任务。

编程要求

打开右侧代码文件窗口,在 BeginEnd 区域补充代码,完成任务。

pyspark 中读取 Linux 系统本地文件 /data/bigfiles/data.txt,该数据集包含了某大学计算机系的成绩,数据格式如下所示:

Tom,DataBase,80Tom,Algorithm,50Tom,DataStructure,60Jim,DataBase,90Jim,Algorithm,60Jim,DataStructure,80……

第一列为学生姓名,第二列为课程名称,第三列为课程成绩。

计算 Tom 同学的总成绩平均分是多少(保留一位小数),直接打印输出计算的结果。

输出示例如下:

Tom 同学的总成绩平均分为:xx.x 分

测试说明

平台将对你编写的代码进行评测,如果与预期结果一致,则通关,否则测试失败。

from pyspark import SparkContext

################ Begin ################

# 创建SparkContext对象
sc = SparkContext("local", "Tom Average Score")

# 读取文本文件
lines = sc.textFile("file:///data/bigfiles/data.txt")

# 计算 Tom 同学的平均分
tom_scores = lines.filter(lambda x: x.startswith("Tom")).map(lambda x: float(x.split(",")[2]))
average_score = tom_scores.mean()

# 打印结果
print("\nTom 同学的总成绩平均分为:%.1f 分" % average_score)

# 关闭SparkContext对象
sc.stop()

################ End ################

第2关:第四题

任务描述

本关任务:根据编程要求,完成任务。

编程要求

打开右侧代码文件窗口,在 BeginEnd 区域补充代码,完成任务。

pyspark 中读取 Linux 系统本地文件 /data/bigfiles/data.txt,该数据集包含了某大学计算机系的成绩,数据格式如下所示:

Tom,DataBase,80Tom,Algorithm,50Tom,DataStructure,60Jim,DataBase,90Jim,Algorithm,60Jim,DataStructure,80……

第一列为学生姓名,第二列为课程名称,第三列为课程成绩。

求每名同学选修的课程门数,直接打印输出计算的结果。

输出示例如下:

('Lewis', 4)('Mike', 3)('Walter', 4)('Conrad', 2)('Borg', 4)……

测试说明

平台将对你编写的代码进行评测,如果与预期结果一致,则通关,否则测试失败。

from pyspark import SparkContext

################ Begin ################

# 创建SparkContext对象
sc = SparkContext("local", "Courses Count")


# 读取文本文件

lines = sc.textFile("file:///data/bigfiles/data.txt")

# 统计各个同学选修课程数量

res = lines.map(lambda x:x.split(",")).map(lambda x:(x[0],1)) #学生每门课程都对应
each_res = res.reduceByKey(lambda x,y: x+y) #按学生姓名获取每个学生的选课总数

# 打印结果

each_res.foreach(print)

# 关闭SparkContext对象

sc.stop()

################ End ################ 

第2关:第五题

任务描述

本关任务:根据编程要求,完成任务。

编程要求

打开右侧代码文件窗口,在 BeginEnd 区域补充代码,完成任务。

pyspark 中读取 Linux 系统本地文件 /data/bigfiles/data.txt,该数据集包含了某大学计算机系的成绩,数据格式如下所示:

Tom,DataBase,80Tom,Algorithm,50Tom,DataStructure,60Jim,DataBase,90Jim,Algorithm,60Jim,DataStructure,80……

第一列为学生姓名,第二列为课程名称,第三列为课程成绩。

统计该系 DataBase 课程共有多少人选修,直接打印输出计算的结果。

输出示例如下:

选修 DataBase 课程的同学共有 n 位

测试说明

平台将对你编写的代码进行评测,如果与预期结果一致,则通关,否则测试失败。

from pyspark import SparkContext

################ Begin ################

# 创建SparkContext对象
sc = SparkContext("local", "DataBase Students Count")

# 读取文本文件
lines = sc.textFile("file:///data/bigfiles/data.txt")

# 统计选修 DataBase 课程的人数
arr = lines.map(lambda x:x.split(",")).filter(lambda x:x[1]=="DataBase")
res = arr.count()

# 打印结果
print("\n选修 DataBase 课程的同学共有 %d 位" % res)

# 关闭SparkContext对象
sc.stop()

################ End ################

第2关:第六题

任务描述

本关任务:根据编程要求,完成任务。

编程要求

打开右侧代码文件窗口,在 BeginEnd 区域补充代码,完成任务。

pyspark 中读取 Linux 系统本地文件 /data/bigfiles/data.txt,该数据集包含了某大学计算机系的成绩,数据格式如下所示:

Tom,DataBase,80Tom,Algorithm,50Tom,DataStructure,60Jim,DataBase,90Jim,Algorithm,60Jim,DataStructure,80……

第一列为学生姓名,第二列为课程名称,第三列为课程成绩。

统计该系各门课程的平均分是多少(保留一位小数),直接打印输出计算的结果。

输出示例如下:

('ComputerNetwork', 51.9)('Software', 50.91)('DataBase', 50.54)......

测试说明

平台将对你编写的代码进行评测,如果与预期结果一致,则通关,否则测试失败。

from pyspark import SparkContext

################ Begin ################

# 创建SparkContext对象
sc = SparkContext("local", "Courses Average")

# 读取文本文件
lines = sc.textFile("file:///data/bigfiles/data.txt")

# 统计该系各门课程的平均分
res = lines.map(lambda x: x.split(",")).map(lambda x: (x[1], (int(x[2]), 1)))
temp = res.reduceByKey(lambda x, y: (x[0] + y[0], x[1] + y[1]))  # 按课程名聚合课程总分和选课人数
# 课程总分/选课人数 = 平均分,保留一位小数
avg = temp.map(lambda x: (x[0], round(x[1][0] / x[1][1], 1)))

# 打印结果
avg.foreach(print)

# 关闭SparkContext对象
sc.stop()

################ End ################

第2关:第七题

任务描述

本关任务:根据编程要求,完成任务。

编程要求

打开右侧代码文件窗口,在 BeginEnd 区域补充代码,完成任务。

pyspark 中读取 Linux 系统本地文件 /data/bigfiles/data.txt,该数据集包含了某大学计算机系的成绩,数据格式如下所示:

Tom,DataBase,80Tom,Algorithm,50Tom,DataStructure,60Jim,DataBase,90Jim,Algorithm,60Jim,DataStructure,80……

第一列为学生姓名,第二列为课程名称,第三列为课程成绩。

使用累加器计算共有多少人选了 DataBase 这门课,直接打印输出计算的结果。

输出示例如下:

共有 n 名同学选修了 DataBase 课程

测试说明

平台将对你编写的代码进行评测,如果与预期结果一致,则通关,否则测试失败。

from pyspark import SparkContext
from pyspark.accumulators import AccumulatorParam

################ Begin ################

# 创建SparkContext对象
sc = SparkContext("local", "DataBase Students Count")

# 创建累加器
data_base_students_count = sc.accumulator(0)

# 定义累加器参数
class MyAccumulatorParam(AccumulatorParam):
    def zero(self, value):
        return value

    def addInPlace(self, acc1, acc2):
        return acc1 + acc2

# 读取文本文件
lines = sc.textFile("file:///data/bigfiles/data.txt")

# 使用累加器统计选修 DataBase 课程的人数
def count_data_base_students(line):
    global data_base_students_count
    if line.split(",")[1] == "DataBase":
        data_base_students_count += 1

# 使用 foreach 方法遍历 RDD 并应用累加器
lines.foreach(count_data_base_students)

# 打印结果
print("\n共有 %d 名同学选修了 DataBase 课程" % data_base_students_count.value)

# 关闭SparkContext对象
sc.stop()

################ End ################

如有侵权请联系删除文章来源地址https://www.toymoban.com/news/detail-767885.html

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

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

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

相关文章

  • JavaScript上部分--头歌(educoder)实训作业题目及答案 JS简介

      目录 JS简介 第1关: JavaScript基础入门 第2关: JavaScript 与 HTML 第3关: JavaScript 变量 JS 数据类型 第1关: JavaScript 数据类型介绍 第2关: JavaScript 数据类型转换 JS运算符 第1关: 算术运算符 第2关: 比较和逻辑运算符 第3关: 条件和赋值运算符 第4关: 运算符的优先级和结合性 JS对象 第

    2023年04月22日
    浏览(73)
  • 头歌(educoder)实训作业题目及答案分享 ——1-4 Java入门 - 分支结构

    📜个人简介 :  作者简介:大家好,我是Passenger.n✌️  支持一下:点赞👍+收藏🌟+留言📪 📣 系列专栏:java基础🍁 ✉️格言:花有重开日,人无再少年!🌞 万事开头难,既然迈开了这一步,那就坚持走下去! 这是我的第一篇博客,希望萌新看了有收获,大佬看了给指

    2024年02月06日
    浏览(73)
  • 头歌(educoder)实训作业题目及答案分享 ——1-7 Java入门-分支与循环练习

    📜个人简介 :  作者简介:大家好,我是Passenger.n✌️  支持一下:点赞👍+收藏🌟+留言📪 📣 系列专栏:java基础🍁 ✉️格言:花有重开日,人无再少年!🌞 万事开头难,既然迈开了这一步,那就坚持走下去! 这是我的第一篇博客,希望萌新看了有收获,大佬看了给指

    2024年02月04日
    浏览(49)
  • 头歌(educoder)实训作业题目及答案分享 ——1-3 Java入门 - 运算符和表达式

    📜个人简介 :  作者简介:大家好,我是Passenger.n  支持一下:点赞👍+收藏🌟+留言📪 📣 系列专栏:java基础🍁 ✉️格言:花有重开日,人无再少年!🌞 万事开头难,既然迈开了这一步,那就坚持走下去! 这是我新的一篇博客,希望萌新看了有收获,大佬看了给指路😝

    2024年02月07日
    浏览(71)
  • 【Educoder作业】问题求解——网页数据获取

    做完了有一种重复感,五道题题目难度太平稳了,甚至后面的题还更简单一些。都是一些重复且机械的操作。 这五个题大题的思路是一模一样的,我就放在一起说了。每个题有每个题的特点,但都可以概括一下。我们先打开 h t m l html h t m l 的文件,搜索 t a b l e table t a b l

    2024年02月01日
    浏览(24)
  • pycharm pyspark连接虚拟机的hive表 读取数据

    给个demo示例:

    2024年04月13日
    浏览(22)
  • 【Educoder作业】认识数字音频

    T1 认识数字音频 他这个问题在于, p r i n t print p r i n t 在格式化输出的时候需要注意, % % % 是要求加括号的,不然会报错。 T2 剪辑儿歌 m p 3 mp3 m p 3 文件可以像数组一样,直接相加表示拼接,用中括号取值是以毫秒为单位裁剪。 T3 根据简谱生成配乐 首先,生成基础音的过

    2024年02月04日
    浏览(25)
  • HNU-计算机系统-CSAPP作业答案

    计科210X wolf 202108010XXX 第2章 2.61 解: (!~x) || (!x) || (!~(x|0x00ffffff)) || (!(x0x000000ff)) 或者: (!~x) || (!x) || (!~(x24)) || (!(x24)) 2.71 A. 实现的是逻辑位移,扩展后前面全是0,不符合符号扩展的要求 B. 2.87 格式A 格式B 位 值 位 值 1 01110 001 -9/16 1 0110 0010 -9/16 0 10110 101 208 0 1110 1010 208 1 00111

    2024年02月08日
    浏览(35)
  • CDH6.3.2 的pyspark读取excel表格数据写入hive中的问题汇总

    需求:内网通过Excel文件将数据同步到外网的CDH服务器中,将CDH中的文件数据写入hive中。 CDH版本为:6.3.2 spark版本为:2.4 python版本:2.7.5 操作系统:CentOS Linux 7 集群方式:yarn-cluster 一、在linux中将excel文件转换成CSV文件,然后上传到hdfs中。 为何要先转csv呢?主要原因是pysp

    2024年02月07日
    浏览(35)
  • educoder--MapReduce基础实战各关卡通关答案

    任务描述 相关知识 什么是MapReduce 如何使用MapReduce进行运算 代码解释 编程要求 测试说明 任务描述 本关任务:使用Map/Reduce计算班级中年龄最大的学生。 相关知识 为了完成本关任务,你需要掌握:1.什么是MapReduce,2.如何使用MapReduce进行运算。 什么是MapReduce MapReduce是一种可

    2023年04月17日
    浏览(28)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包