云计算实验4 面向行业背景的大数据分析与处理综合实验

news2024/11/15 20:11:14

一、 实验目的

掌握分布式数据库接口Spark SQL基本操作,以及训练综合能力,包括:数据预处理、向量处理、大数据算法、预测和可视化等综合工程能力

二、 实验环境

Linux的虚拟机环境和实验指导手册

三、 实验任务

完成Spark SQL编程实验、交通数据综合分析平台环境部署和综合实验。

四、 实验步骤

请按照实验指导手册,完成以下实验内容:

实验4-1 Spark SQL:Spark SQL 编程
(1) DataFrame数据集操作
(2) Spark SQL编程操作

实验4-2交通轨迹:安装部署
(1) 安装Spark单节点版

实验4-3交通数据综合分析实验
(1) 数据预处理 (2) 特征向量
(3) Spark SQL (4) 聚类算法
(5) 结果预测 (6) 数据可视化

五、 实验作业

1、提交实验报告电子稿和纸质稿,内容包括安装步骤及主要配置方法说明,关键步骤截图,并对截图内容进行解释说明;

2、个人对实验的总结和心得,本实验具有一定难度和繁琐程度,请总结与撰写自身遇到的问题,以及解决问题的过程。

3、搜索互联网并回答问题:
相关资料:《11天里13个Apache开源项目宣布退休,Hadoop的时代结束了》链接:https://cloud.tencent.com/developer/news/827409
该新闻中报道,约有10个左右的Hadoop开源项目宣布退休,大数据技时代的已经准备落幕了吗?请结合Hadoop技术的优缺点,评价Hadoop项目退休的原因以及未来大数据的发展趋势。

六、 实验结果与分析

1、安装步骤及主要配置方法说明

A. 实验4-1 Spark SQL:Spark SQL 编程

(1) DataFrame数据集操作
(2) Spark SQL编程操作

1、启动spark-shell,启动时指定启动模式
在这里插入图片描述
2、创建spark 的SQLContext
在这里插入图片描述
3、创建DataFrames对象
读取json格式的数据文件,查看数据的schema信息
在这里插入图片描述
在这里插入图片描述
4、select 操作
查询所有的课程名
在这里插入图片描述
查询所有的课程名及课程包大小
在这里插入图片描述
5、filter,groupyBy 和 count() 操作
打印出所有的非实验课程名称,类似于使用where条件过滤
在这里插入图片描述
查询课程长度在5-10之间的课程,将返回一个新的RDD
在这里插入图片描述

B. 实验4-2交通轨迹:安装部署

(1) 安装Spark单节点版
针对安装spark已经做了很多次了,这边还是使用脚本一键安装
脚本源码如下:

在这里插入图片描述
运行脚本,查看结果

在这里插入图片描述

C. 实验4-3交通数据综合分析实验

(1) 数据预处理 (2) 特征向量
(3) Spark SQL (4) 聚类算法
(5) 结果预测 (6) 数据可视化

1、数据准备
在这里插入图片描述
2、解析csv数据
导包和定义字段格式等此处不展示
直接看最后的结果:利用taxidf对象的show方法打印输出前20条数据
在这里插入图片描述
3、构建特征向量
3.1转换数据字段中的经纬度,定义特征数组
在这里插入图片描述
3.2创建向量装配器VetorAssembler,并设置相关属性

在这里插入图片描述
3.3利用向量装配器的transform方法对导入的数据taxidf进行转化,并赋值给taxidf2
在这里插入图片描述
3.4利用taxidf2对象的show方法打印前20条数据查看

在这里插入图片描述
4、聚类模型训练
将数据集划分比例分别作为训练集和测试集,然后对对数据集进行随机划分,randomSplit 的第二个参数为随机数的种子
在这里插入图片描述
在这里插入图片描述
setPredictionCol:设置生成预测值时使用的字段名称
在这里插入图片描述
获取Kmeans模型的聚类中心,可以看到之前设定数量为 10 的聚类结果
在这里插入图片描述
将结果转换为RDD类型,进行经纬度互换,调用RDD对象的saveAsTextFile方法保存结果到本地
在这里插入图片描述
5、聚类模型测试
调用Kmeans模型的transform方法对测试数据进行聚类,调用predictions对象的show方法,输出预测结果
在这里插入图片描述
6、分析预测结果
预测结果为DataFrame,我们先将其注册为临时表perdictions,然后使用SQL查询功能
在这里插入图片描述
基于小时数进行不同预测类型的数量进行统计

在这里插入图片描述
利用聚焦函数agg的count实现,并以desc降序输出结果
在这里插入图片描述
在对表predictions进行where查询,找出4号区域的经纬度记录下来
在这里插入图片描述
在对表predictions进行查询,找出9号区域的经纬度记录下来
在这里插入图片描述
得到每个区域的出租车载客次数总计
在这里插入图片描述
7、数据可视化
配置API及各项参数
在浏览器打开输入URL回车,即可得到聚类结果的10个簇中心在地图上的位置
在这里插入图片描述
在这里插入图片描述
创建一个新的文件夹Visualization,并在此文件夹下创建名为data和js的两个文件夹
在这里插入图片描述
解压并拷贝所有的js文件到此js目录中
在这里插入图片描述
将数据聚类分析的结果busyZones合并成单个文件
在这里插入图片描述
在Visualization目录下创建编辑index.html文件,完成代码编写后,在浏览器中打开文件URL,查看可视化结果
在这里插入图片描述

2、实验的总结和心得

本次实验主要了解了Spark SQL的基本概念、DataFrame、Spark SQL开发,利用Spark进行大数据分析实现交通数据分析系统,结合使用百度地图提供的API实现可视化的图表。其中实验4-1,4-2提供理论基础和实验环境,实验4-3最终实现交通数据的综合分析。在交通数据的综合分析实验中首先进行数据集的分割,其次利用K-means聚类算法进行聚类分析,K-means聚类算法是一种非层次聚类算法,在最小误差的基础上将数据划分了特定的类,类间利用距离作为相似度指标,两个向量之间的距离越小,其相似度就越高。程序读取全国省市经纬度坐标,然后根据经纬度坐标进行K-means聚类分析,最后将结果转换为RDD类型,进行经纬度互换,调用RDD对象的saveAsTextFile方法保存结果到本地。利用百度地图提供的API实现数据可视化。我们可以发现实验是多学科交融的,利用获得的大数据进行合理的配置之后,喂给深度学习模型,模型经过大量数据训练后在使用时效果会更好。利用大数据,可以做好给用户精准推荐,方便分析潜在规律,具有很大的应用价值。

3、请结合Hadoop技术的优缺点,评价Hadoop项目退休的原因以及未来大数据的发展趋势。

这次合并的背景是大数据市场的整合趋势。而且可以说,这场大数据整合潮流也是上面这些项目“退役”的根本原因。很明显,在大数据世界中,大量投资于 Apache Sentry 的供应商和客户现在需要整理他们的损失并继续前进。残酷的现实带来的教训几乎适用于所有技术炒作周期:社区开始兴奋起来,开源技术激增,生态系统逐渐完善。但这些生态系统并不会永存,几乎任何新平台(无论是商业平台还是开源平台)都存在固有的风险。
用 ASF 的 Khudairi 的话来说:“每个项目背后的社区才是代码生命力的源泉(‘代码不会自动编写出来’),因此社区改变项目步伐的情况并不少见。”换句话说,尖端技术令人兴奋,但早期采用者要小心:它也是很脆弱的。请多加注意,并妥善管理风险。
Hadoop是一个能够让用户轻松架构和使用的分布式计算平台。用户可以轻松地在Hadoop上开发和运行处理海量数据的应用程序。它主要有以下几个优点:
  ·高可靠性。Hadoop按位存储和处理数据的能力值得人们信赖。
  ·高扩展性。Hadoop是在可用的计算机集簇间分配数据并完成计算任务的,这些集簇可以方便地扩展到数以千计的节点中。
  ·高效性。Hadoop能够在节点之间动态地移动数据,并保证各个节点的动态平衡,因此其处理速度非常快。
  ·高容错性。Hadoop能够自动保存数据的多个副本,并且能够自动将失败的任务重新分配。
由于Hadoop优势突出,基于Hadoop的应用已经遍地开花,尤其是在互联网领域。Yahoo! 通过集群运行Hadoop,以支持广告系统和Web搜索的研究;Facebook借助集群运行Hadoop,以支持其数据分析和机器学习;百度则使用Hadoop进行搜索日志的分析和网页数据的挖掘工作;淘宝的Hadoop系统用于存储并处理电子商务交易的相关数据;中国移动研究院基于Hadoop的“大云”(BigCloud)系统用于对数据进行分析和并对外提供服务。虽然有很多项目退出,并且Hadoop存在在当前Hadoop的设计中,所有的metadata操作都要通过集中式的NameNode来进行,NameNode有可能是性能的瓶颈,但是就目前Hadoop技术的优势而言,他仍然是未来的主流。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/12420.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[附源码]java毕业设计基于篮球云网站

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

电压放大器原理(电压放大器适用于什么场合使用)

前阵子有不少的工程师在后台咨询,电压放大器适用于什么场合使用、电压放大器原理等等的内容,虽然电压放大器使用的人群很多,但是还是有不少新手工程师对于电压放大器一知半解。今天安泰电子就来为大家介绍电压放大器的原理以及应用场合。 电压…

redis之变慢了该如何排查?

写在前面 不管什么工具,会使用永远只是第一步,第二步是当其出现某些问题时,拥有排查和修复问题的能力,而我们在使用Redis的过程中,变慢就是其中一个比较棘手的问题,因此本文就一起来看下,当遇到…

STM32实现0.96寸OLED显示模拟IIC和IIC四种实现(标准库和HAL库)

目录 本文通过四种方法实现OLED显示 设备选择 OLED介绍 接线表设计 OLED应用 1.标准库模拟IIC实现OLED显示 2.标准库IIC实现OLED显示 3.HAL库模拟IIC实现OLED显示 4.HAL库IIC实现OLED显示 实现效果 代码下载 本文通过四种方法实现OLED显示 设备选择 1.单片机&#…

数字电路中的基础电路结构

基本单元: 1.1 与非门 1.2 或非门 2输入与非门需要4个晶体管(n输入与非门需要2xn个晶体管),非门需要两个晶体管,2输入或非门需要6个晶体管(n输入或非门需要 2xn 2个晶体管)。 静态存储器 1bi…

用 Java 的 IO 流进行读写文件操作

前言 在计算机领域里 IO,有时也写作 I/O,是Input / Output的缩写,也就是输入和输出。这里的输入和输出是指不同系统之间的数据输入和输出,比如读写文件数据,读写网络数据等等。 本文内容大纲如下: Java 有哪些IO框…

数据结构【AVL树模拟实现】

目录 AVL树概念 AVL树结构 insert AVL树的旋转 新节点插入较高右子树的右侧---右右:左单旋 新节点插入较高左子树的左侧---左左:右单旋 新节点插入较高左子树的右侧---左右:先左单旋再右单旋 新节点插入较高右子树的左侧---右左&…

Bug解决:出现C++:internal compiler error: killed(program cc1plus)

最近在学习hyperscan过程中,安装的过程总是会出现 C:internal compiler error: killed(program cc1plus) 反复查找之后既不是版本问题也不是依赖问题,查阅了很多解决方案后,确认是交换空间不足,所以我们解决的方法是临…

Kotlin 开发Android app(七)上:Kotlin函数fun

对于函数来说,现在的语言越来越想把它往变量上靠。 确实对于函数来说,他应该有很多变量的特性。 在Kotlin 中,定义函数是很简单的一件事情,我觉得编程有的时候是被一些语言给高复杂了,命名很简单的一些事情&#xff0…

matlab绘图

clear a-2:0.1:2; b-3:0.1:3; [x,y]meshgrid(a,b); z(1-(x.2)/4-(y.2)/9).^(1/2); mesh(x,y,z) hold on mesh(x,y,-z) clear a-1:0.1:1; b-2:0.1:2; [x,y]meshgrid(a,b); z(4/9)*(x.2)(y.2); mesh(x,y,z)

运维监控系统 PIGOSS BSM 拓扑自动发现原理

PIGOSS BSM提供了自动发现拓扑功能,能够发现全网拓扑、指定网段拓扑、路由拓扑,能够自动关联系统已经监控的设备的状态在拓扑图上实时显示。在做全网发现的时候,可以指定网段或起始路由器,并设定全网的snmp配置参数后,…

vue 使用webpack打包,出现路径404 ,导致白屏webpack-bundle-analyzer使用

使用webpack打包时,遇到两个问题,导致页面出现白屏 一个是cdn对于静态文件限制大小,不能大于2MB,超过这个大小后,就不能上传cdn成功,导致页面加载时,长时间白屏,且找不到资源&#x…

INTERSPEECH 2022|FS-CANet: 基于全带子带交叉注意力机制的语音增强

INTERSPEECH 2022 FS-CANet: 基于全带子带交叉注意力机制的语音增强 本文由清华大学与腾讯天籁实验室、香港中文大学合作,提出了一个全带-子带交叉注意力(FSCA)模块来交互融合全局信息和局部信息,并将其应用于FullSubNet&#…

Dubbo源码(十) 与Spring一起学习Dubbo里的Aware

目录 一、Spring 1.BeanNameAware 2. BeanClassLoaderAware 3. ApplicationContextAware 4. EnvironmentAware 5. ApplicationEventPublisherAware 6. aware注入时机 二、Dubbo 1. ExtensionAccessorAware 三、小结 现在很多同行做java开发几年了,被迫停留…

[附源码]java毕业设计竞价拍卖系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

灵雀云ACP 斩获“2022金边奖-最佳云原生边缘云平台”

近日,由边缘计算社区主办的全球边缘计算大会上海站成功召开,灵雀云凭借出色的全栈云原生技术实力、专业的高品质服务以及在边缘云场景的丰富落地实践,斩获“2022金边奖-最佳云原生边缘云平台”奖项。 “十四五”规划中明确指出要“协同发展云…

使用kubeadm部署kubernetes集群

文章目录环境环境初始化配置hosts配置时钟同步禁用firewalld、selinux、postfix禁用swap分区开启IP转发、修改内核信息配置IPVS安装Docker配置yum源安装docker-ce配置镜像加速器安装kubernetes组件配置yum源安装kubeadm、kubelet、kubectl工具配置containerd部署master安装pod网…

UTF-8、Unicode编码与汉字的相关内容

介绍 UTF-8是Unicode的一种实现方式,比如一个汉字用Unicode编码表示是两个字节,而用UTF8编码表示则为3个字节。 之所以写这篇文章,是因为我的webserver程序中,浏览器发送资源请求且该资源名为中文时出现了编码问题。 UTF8编码 U…

【SQL 中级语法 2】自连接的用法

SQL的连接运算根据其特征的不同,有着不同的名称,如内连接、外连接、交叉连接等。一般来说,这些连接大都是以不同的表或视图为对象进行的,但针对相同的表或相同的视图的连接也并没有被禁止。针对相同的表进行的连接被称为“自连接”…

python之排序

目录1. 对一维array中的数值进行从大到小排序2. 将DataFrame的列逆序排列3. 根据字符串中的数字进行排序3.2 啊4. 列表参考资料1. 对一维array中的数值进行从大到小排序 import numpy as np a np.array([5,6,8,2,1,7,5,3,90,78,62,5,4,2,9,4]) # b a.sort(axis0,kindquickso…