Hadoop+Spark大数据技术(测试)
1、九九乘法表
在下面的单元格中编写Scala程序,输出上三角形的九九乘法表,并运行。
for (i <- 1 to 9 reverse) {for (j <- 1 to i) {print(s"$j x $i = ${i * j}\t")}println()
}
2、单词计数
在下面的若干单元格中编写Spark程序,对test.txt中的单词计数,并输出统计结
果。
test.txt的内容为下面三行:
Life would be too smooth if it had no rubs in it
Life is the art of drawing sufficient conclusions form insufficient premises
The wealth of the mind is the only wealth
import org.apache.spark.sql.SparkSessionobject WordCount {def main(args: Array[String]): Unit = {val spark = SparkSession.builder().appName("WordCount").getOrCreate()val textFile = spark.sparkContext.textFile("test.txt")val words = textFile.flatMap(_.split("\\W+"))val wordCounts = words.map(word => (word, 1)).reduceByKey(_ + _)wordCounts.foreach(println)spark.stop()}
}// 程序入口点
WordCount.main(Array())
3、DataFrame
在下面的若干单元格中编写Spark程序,利用grade.csv创建Spark SQL DataFrame。
header参数:用于指示csv文件中是否包含标题行。如果设置为True,则SPamk会券试将第一行作为列名使用。
inferSchema参数:如果设置为True,Spark会自动尝试推断每列的数据类型。
(1)统计行数。
(2)筛选Python,Java,scala都不低手85的行。(3)分班级统计各门课程的平均分。
import org.apache.spark.sql.SparkSession
import org.apache.spark.sql.functions._object GradeAnalysis {def main(args: Array[String]): Unit = {val spark = SparkSession.builder().appName("GradeAnalysis").getOrCreate()// 加载CSV文件并创建DataFrameval gradeDF = spark.read.option("header", "true") // 指示CSV文件中包含标题行.option("inferSchema", "true") // 自动推断列的数据类型.csv("grade.csv")// (1) 统计行数val rowCount = gradeDF.count()println(s"Total number of rows: $rowCount")// (2) 筛选Python, Java, Scala成绩都不低于85的行val highAchievers = gradeDF.filter((col("Python") >= 85) &&(col("Java") >= 85) &&(col("Scala") >= 85))println("Students with grades above 85 in all three subjects:")highAchievers.show()// (3) 分班级统计各门课程的平均分val classAverages = gradeDF.groupBy("Class").agg(mean("Python").as("Python_Avg"),mean("Java").as("Java_Avg"),mean("Scala").as("Scala_Avg"))println("Class averages for each subject:")classAverages.show()spark.stop()}
}
4、Graphx属性图
在下面的若干单元格中编写Spark程序,利用下图创建Graphx属性图,并完成:
(1)输出图的顶点信息和边信息。
(2)找出属性为PI的边 。
(3)找出属性为professor的顶点。
import org.apache.spark.{SparkConf, SparkContext}
import org.apache.spark.graphx.{Edge, Graph, VertexId}
import org.apache.spark.rdd.RDDobject GraphXExample {def main(args: Array[String]): Unit = {val conf = new SparkConf().setAppName("GraphX Example")val sc = new SparkContext(conf)// 假设的顶点数据val vertices: RDD[(VertexId, (String, String))] = sc.parallelize(Seq((1L, ("Alice", "student")),(2L, ("Bob", "student")),(3L, ("Charlie", "professor"))// 添加更多顶点...))// 假设的边数据val edges: RDD[Edge[(String, String)]] = sc.parallelize(Seq(Edge(1L, 3L, ("enrolled", "CS101")),Edge(2L, 3L, ("enrolled", "CS102")),// 添加更多边...))// 创建GraphX的Graph对象val graph = Graph(vertices, edges)// (1) 输出图的顶点信息和属性println("Vertices and their attributes:")graph.vertices.collect().foreach {case (vid, (name, attr)) => println(s"Vertex $vid: Name = $name, Attribute = $attr")}// (2) 输出属性为"enrolled"的边println("\nEdges with 'enrolled' attribute:")graph.edges.filter(e => e.attr._1 == "enrolled").collect().foreach {case Edge(src, dst, attr) => println(s"Edge from Vertex $src to $dst with Attribute = $attr")}// (3) 输出属性为"professor"的顶点println("\nVertices with 'professor' attribute:")graph.vertices.filter { case (_, (_, attr)) => attr == "professor" }.collect().foreach {case (vid, (_, _)) => println(s"Vertex $vid is a professor")}sc.stop()}
}// 运行程序
GraphXExample.main(Array())
相关文章:
![](https://www.ngui.cc/images/no-images.jpg)
Hadoop+Spark大数据技术(测试)
1、九九乘法表 在下面的单元格中编写Scala程序,输出上三角形的九九乘法表,并运行。 for (i <- 1 to 9 reverse) {for (j <- 1 to i) {print(s"$j x $i ${i * j}\t")}println() } 2、单词计数 在下面的若干单元格中编写Spark程序&#…...
![](https://www.ngui.cc/images/no-images.jpg)
使用新语法连接Qt 5中重载的信号和槽
在使用Qt 5中的新信号和槽连接语法(使用成员函数指针)时,我遇到了一些问题。根据新的信号槽语法的描述,我尝试将以下代码: QObject::connect(spinBox, SIGNAL(valueChanged(int)),slider, SLOT(setValue(int)));改为&…...
![](https://img-blog.csdnimg.cn/direct/1aff236477a447fda4c07ac5edb29e28.png#pic_center)
梯度提升决策树(GBDT)的训练过程
以下通过案例(根据行为习惯预测年龄)帮助我们深入理解梯度提升决策树(GBDT)的训练过程 假设训练集有4个人(A、B、C、D),他们的年龄分别是14、16、24、26。其中A、B分别是高一和高三学生&#x…...
![](https://img-blog.csdnimg.cn/img_convert/f67a8222fb34efccc9302d88722a55c7.png)
路由器的Wi-Fi性能是否限制了你的网速?这里有你想要的答案
你的无线网络速度阻碍了你吗?信不信由你,升级到超快的互联网计划可能不值得。以下是如何判断路由器的Wi-Fi速度是否阻碍了你,以及你能做些什么。 如何测试你的Wi-Fi速度 比较你的有线速度和无线速度可以表明你的路由器是否阻碍了你。虽然很多人认为“Wi-Fi”和“互联网”…...
![](https://www.ngui.cc/images/no-images.jpg)
简站WordPress是最简洁好用易上手的wordpress企业建站主题
简站WordPress主题确实是一个非常简洁、好用且易上手的企业建站主题。以下是详细分析: 简洁性:简站WordPress主题采用了扁平化设计风格,界面简洁明了,这使得它在众多WordPress主题中脱颖而出。这种设计不仅美观,还能提…...
阿里云 debian10.3 sudo apt-get updat 报错的解决方案
阿里云全新的debian10.3(buster)镜像,却无法正常执行 sudo apt-get update。主要报错信息如下: Err:6 http://mirrors.cloud.aliyuncs.com/debian buster-backports Release404 Not Found [IP: 100.100.2.148 80] Err:3 http://mirrors.cloud.aliyuncs…...
![](https://www.ngui.cc/images/no-images.jpg)
vite中使用scss技巧
一、样式混合 1.普通用法 mixin flex() {display: flex;justify-content: space-around;align-items: center; }//使用方法 .legend_box_item {width: 50%;height: 10px;include flex; }2.传递参数,参数后面的值为默认值 mixin flex($justify: flex-start, $alig…...
![](https://www.ngui.cc/images/no-images.jpg)
PyQt5/Pyside2学习记录
前言 最近导师的项目要求是PyQt,现学现用,现在写下中间的一些注意事项。 本程序分为两个界面,要求两个界面能堆叠显示,一个首页界面,一个功能界面。在功能界面中,有三个操控的控件,下拉框、文本…...
![](https://www.ngui.cc/images/no-images.jpg)
记一次通过脚本来实现自定义容器的自动重启
通过脚本来实现自定义容器的自动重启 1. 场景还原2. 自定义启动脚本3. 使用自定义脚本来作为容器启动的脚本4. 制作自定义脚本作为入口点的新镜像5. 测试新镜像启动是否走自定义启动脚本 1. 场景还原 现在我有一个自定义的Docker镜像,是基于基础镜像来构建的带有多…...
![](https://img-blog.csdnimg.cn/direct/f8904505cc73445d8c0582f6633256c0.jpeg)
基于Django、Bootstrap的电影推荐系统,算法基于用户的协同过滤算法,有爬虫有可视化后台
背景 基于Django和Bootstrap的电影推荐系统结合了用户协同过滤算法,通过爬虫技术获取电影数据,并在可视化后台展示推荐结果。该系统旨在提供个性化的电影推荐服务,帮助用户发现符合其喜好的电影。 用户协同过滤算法是一种常用的推荐算法&am…...
![](https://www.ngui.cc/images/no-images.jpg)
mysql、mariadb 登录主机的含义,如何修改登录主机,如何删除登录主机
MariaDB版本: 10.3.39 登录主机的含义: 参考 1 阿风说事:说世间百态、聊奇闻趣事,分享个人观点和独到见解 2 mysql授权localhost&%区别及一直授权错误解决办法(安装openstack有感) 3 ERROR 1396 (HY000): Operat…...
![](https://www.ngui.cc/images/no-images.jpg)
c++ 设计模式 的课本范例
(1) 框架设计模式 model mode : 算法的框架不变,算法的细节可以改变。主要依赖多态。 class Player { protected:int life;int magic;int attack;virtual void effect_self() {}virtual void effect_enemy() {}virtual bool can_…...
![](https://www.ngui.cc/images/no-images.jpg)
QT中绘制点阵
1.QGraphicsScene,QGraphicsView,QGraphicsItem机制 #include <QApplication> #include <QGraphicsView> #include <QGraphicsScene> #include <QGraphicsEllipseItem>int main(int argc, char *argv[]) {QApplication app(arg…...
![](https://www.ngui.cc/images/no-images.jpg)
机器人里程计(Odometry)
机器人里程计(Odometry)是机器人定位和导航中的一个关键概念,它涉及到利用传感器数据来估计机器人在环境中的位置和姿态。里程计的基本原理是根据机器人自身动作的反馈来计算其相对于初始位置的位移。这通常包括机器人从一个已知位置开始&…...
![](https://img-blog.csdnimg.cn/direct/79e397f0f1024b9489eede7cbd042ad4.png)
后端实现预览pdf,mp4,图片
PDF预览 /*** pdf预览* param response*/RequestMapping(value "/preview")public void showPdf(HttpServletResponse response) {try {//String filePath this.getClass().getClassLoader().getResource("../../static/pdf/readme.pdf").getPath();Stri…...
![](https://img-blog.csdnimg.cn/direct/da8c950c59d74bb0b0e89d535145dd3a.png)
【C++】数据类型、函数、头文件、断点调试、输入输出、条件与分支、VS项目设置
四、基本概念 这部分和C语言重复的部分就简写速过,因为我之前写过一个C语言的系列,非常详细。C和C这些都是一样的,所以这里不再一遍遍重复码字了。感兴趣的同学可以翻看我之前的C语言系列文章。 1、数据类型 编程的本质就是操作数据。 操…...
![](https://www.ngui.cc/images/no-images.jpg)
Spring框架的原理及应用详解(六)
本系列文章简介: 在当今的软件开发世界中,随着应用复杂性的不断增加和技术的快速发展,传统的编程方式已经难以满足快速迭代、高可扩展性和易于维护的需求。为此,开发者们一直在寻求更加高效、灵活且易于管理的开发框架,以帮助他们应对这些挑战。Spring框架就是在这样的背景…...
![](https://img-blog.csdnimg.cn/direct/8f78d6ffd00148a9b6e5b6aea60ddab0.png)
C++ | Leetcode C++题解之第151题反转字符串中的单词
题目: 题解: class Solution { public:string reverseWords(string s) {int left 0, right s.size() - 1;// 去掉字符串开头的空白字符while (left < right && s[left] ) left;// 去掉字符串末尾的空白字符while (left < right &…...
![](https://www.ngui.cc/images/no-images.jpg)
Leetcode 415. 字符串相加-大数相加
415. 字符串相加 - 力扣(LeetCode) class Solution {/**2024.6.17大数相加,从2个字符串最后一位开始加,如果没遍历到下标0,就一直遍历,减去‘a’得到数值,循环结束条件就是 字符串1遍历完了&am…...
![](https://img-blog.csdnimg.cn/direct/94086643508146adac3fa71dff69d00e.png)
IDEA集成Docker实现快捷部署
本文已收录于专栏 《运维》 目录 背景介绍优势特点操作步骤一、修改Docker配置二、配置Docker插件三、编写Maven插件四、构建Docker镜像五、创建Docker容器 总结提升 背景介绍 在我们手动通过Docker部署项目的时候,都是通过把打包好的jar包放到服务器上并且在服务器…...
![](https://img-blog.csdnimg.cn/direct/3bfc16d30cd349b2ab6c28f44f87e113.gif)
五十四、openlayers官网示例LineString Arrows解析——在地图上绘制箭头
官网demo地址: LineString Arrows 这篇介绍了在地图上绘制箭头。 创建一个矢量数据源,将其绑定为draw的数据源并展示在矢量图层上。 const source new VectorSource();const vector new VectorLayer({source: source,style: styleFunction,});map.ad…...
![](https://www.ngui.cc/images/no-images.jpg)
内核学习——3、自旋锁的作用及其实现
作用: 保护一段临界区的操作时独占的,不能由其他cpu或者线程同时访问破坏数据结构多核系统SMP: 主要考虑一个cpu进入临界区之后,其他CPU不能再去进入这个临界代码区单核系统: 不能被其他进程抢占单核系统自旋锁实现&am…...
![](https://www.ngui.cc/images/no-images.jpg)
恒昌公益第五所“云杉校园”于湖南怀化正式揭牌
在中国近代史上湖南无疑是不可忽视的存在,在“敢为天下先”的湖湘文化熏陶下更是涌现了无数改变国家命运的人物。而作为推动民族复兴与社会进步的关键支柱,重视教育的传统起到的作用功不可没。在迈向中国式现代化的当下,积极推动优质教育资源…...
![](https://img-blog.csdnimg.cn/direct/600ed83c01ef437aa4366682c9e0ac2f.jpeg)
番外篇 | YOLOv8算法解析和实战应用:车辆检测 + 车辆追踪 + 行驶速度计算
前言:Hello大家好,我是小哥谈。YOLOv8是ultralytics公司在2023年1月10号开源的,是YOLOv5的下一个重大更新版本,目前支持图像分类、物体检测和实例分割任务,在还没有开源时就收到了用户的广泛关注。它是一个SOTA模型,建立在以前YOLO版本的成功基础上,并引入了新的功能和改…...
![](https://www.ngui.cc/images/no-images.jpg)
【React】useState 的原理
useState 是 React Hooks 中的一个核心函数,用于在函数组件中添加和管理状态。以下是 useState 的原理及其工作方式的详细解释: 1. 基本概念 useState 允许你在函数组件中添加 state。它接受一个参数,这个参数是 state 的初始值。useState 返回一个包含两个元素的数组: 第…...
![](https://www.ngui.cc/images/no-images.jpg)
从二元一次方程组到二阶行列式再到克拉默法则
目录 引言1 二元一次方程组什么是二元一次方程组?解法概述示例1. 操作步骤2. 消元法 2 二阶行列式引入行列式行列式定义示例计算 3 克拉默法则什么是克拉默法则?克拉默法则公式使用克拉默法则求解 4 总结 引言 在数学中,线性代数提供了一套强…...
![](https://img-blog.csdnimg.cn/direct/df83d3f88fa044e6b258763a896ec172.gif)
示例:WPF中绑定枚举到ComboBox想显示成中文或自定义名称如何实现
一、目的:在开发过程中绑定的枚举不想显示成英文字段怎么办,这里通过TypeConverter的方式来实现绑定的枚举从定义的特性中读取 二、实现 首先定义如下枚举 [TypeConverter(typeof(DisplayEnumConverter))]public enum MyEnum{[Display(Name "无&q…...
![](https://www.ngui.cc/images/no-images.jpg)
嵌入式系统软件架构设计方法
1.嵌入式系统软件架构设计的目的 嵌入式系统软件架构是开发大型嵌入式系统密集型软件贯穿始终的关键桥梁,同时软件架构也是软件开发的基础。架构设计的目的是: 保证应用的代码逻辑清晰,避免重复的设计;实现软件的可移植性&#…...
![](https://img-blog.csdnimg.cn/direct/c86dfd524d8246059f06fe828ae4cdd3.png)
【面试题】风险评估和应急响应的工作流程
风险评估和应急响应是网络安全管理中两个重要的环节。下面分别介绍它们的工作流程: 一、风险评估工作流程: 1.确定评估范围:明确需要评估的信息系统或资产的范围。 2.资产识别:识别并列出所有需要评估的资产,包括硬件…...
![](https://img-blog.csdnimg.cn/direct/d0eb78bb34c540bda10c87f584238068.png)
Vue70-路由的几个注意点
一、路由组件和一般组件 1-1、一般组件 1-2、路由组件 不用写组件标签。靠路由规则匹配出来,由路由器渲染出来的组件。 1-3、注意点1 一般组件和路由组件,一般放在不同的文件夹,便于管理。 一般组件放在components文件夹下。 1-4、注意点…...
![](/images/no-images.jpg)
做网站 怎么做留言/百度新闻最新消息
package cn.TCP;import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; import java.net.ServerSocket; import java.net.Socket;/*** 模拟多个客户端登陆 双向* 1.指定端口 使用ServerSocket创建服务器* 2.阻塞式等待连接accept* 3.…...
![](https://img-blog.csdnimg.cn/img_convert/b2afe5d1fe9f478fafeb0d6ac357ee2a.png)
wordpress影视解析插件/专业seo排名优化费用
如果你需要在Linux命令行中使用计算器,那就按本文介绍的方法操作,用bc、calc、expr、gcalccmd、qalc命令,有些需要安装就可以用来去处了,这些命令行计算器允许我们执行所有类型的操作,例如科学、财务或甚至简单的计算&…...
![](/images/no-images.jpg)
文山北京网站建设/网站优化培训学校
正则表达式(通用)目录文章目录1、概述1.1、序言1.2、作用2、正则字符3、元字符3.1、普通字符3.2、特殊字符:2.4、位置限定5、转义字符5.1、普通转义字符5.2、转义字符(范围字符)6、()、[]、{}作用7、量词7.1、数字量词7.2、符号量词7.3、懒惰…...
![](/images/no-images.jpg)
wordpress去除底部/西安网站开发制作公司
页面代码如下: <ul id"ul1"><li>abc</li> </ul> 分别用如下js代码创建元素,并给创建的元素赋予文本,有两种写法 写法一: window.οnlοadfunction() {var oUl document.getElementById("…...
![](https://img-blog.csdnimg.cn/20210119181553825.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L215Y2hlcnlfbHg=,size_16,color_FFFFFF,t_70)
wordpress 主题缓存/企业邮箱怎么开通注册
检查一下采购订单...
![](https://img-blog.csdnimg.cn/2019051716354626.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3poYW9tZW5nc3p1,size_16,color_FFFFFF,t_70)
湖北建筑网/潍坊seo按天收费
女朋友找我斗图,最后斗她到自闭。 网址:https://www.doutula.com/ 难度不大,代码如下: # -*- coding: utf-8 -*-import random import requests from bs4 import BeautifulSoup import urllib import osBASE_URL https://www.…...