Spark-Scala语言实战(16)

在之前的文章中,我们学习了三道任务,运用之前学到的方法。想了解的朋友可以查看这篇文章。同时,希望我的文章能帮助到你,如果觉得我的文章写的不错,请留下你宝贵的点赞,谢谢。

Spark-Scala语言实战(15)-CSDN博客文章浏览阅读1.5k次,点赞38次,收藏32次。今天开始的文章,我会带着大家来做三道任务,运用之前学到的方法,温故知新,举一反三,将知识紧紧掌握,cogroup两种方法。希望我的文章能帮助到大家,也欢迎大家来我的文章下交流讨论,共同进步。https://blog.csdn.net/qq_49513817/article/details/137658076之前的文章,我们都是在IDEA的非集群环境下进行的操作,但是,每一个学习spark的人都应该知道我们学习spark的目的都是为了最终能够完成分布式计算系统任务,它具有的大规模数据集上快速进行复杂分析和计算的能力让它在集群环境下保守欢迎。今天的文章,我会带着大家一起来到Linux集群环境下,学习我们的spark。

之前的文章中我们已经学习过如何搭建我们Linux中的spark集群环境,还不会的朋友可以查看这篇专栏。

大数据技术之Hadoop全生态组件学习与搭建icon-default.png?t=N7T8https://blog.csdn.net/qq_49513817/category_12599218.html

目录

一、知识回顾

二、外部文件读取并处理

启动集群 

文件读取


一、知识回顾

 在上一篇文章中,我们讲了三道任务题,分别是使用Spark完成单词去重,使用Spark统计133 136 139开头的总流量,完成统计相同字母组成的单词。

在单词去重中,我们主要使用了我们的distinct()方法进行去重操作

 在统计流量中,我们首先使用了之前使用过的键值对方法将手机号与流量进行匹配,在使用map方法与groupByKey方法切分手机号前三位并分组,最后使用sum求和得出总流量。

在统计单词中,我们显示切分了单词并进行排序,最后使用reduceByKey方法统计。

 现在,开始今天的学习吧~

二、外部文件读取并处理

启动集群 

 首先,我们肯定是要启动我们的集群环境。

systemctl stop firewalld.service
start-dfs.sh
start-yarn.shcd /opt/spark-3.2.1/sbin/./start-all.sh
  • systemctl stop firewalld.service的作用是关闭我们的防火墙,在进行绝大部分的集群操作时都需要用到它。
  • start-dfs.sh的作用是启动我们Hadoop的分布式文件系统(HDFS)
  • start-yarn.sh的作用是启动我们Hadoop的YARN组件
  • cd /opt/spark-3.2.1/sbin/是切换到我们的spark下的sbin目录
     ./start-all.sh是启动我们Spark集群的所有服务

然后,我们需要启动我们的spark

cd /opt/spark-3.2.1/
./bin/spark-shell

切换到我们的spark目录下,启动我们的spark

出现我们的spark图标与版本号,及成功。 

文件读取

我们有一个名为testcsv的csv文件,它里面存贮了一些数据,那我们该如何读取呢?

首先你要知道文件存储的路径,我这里的路径是spark中自己创建的目录,你们创建时记得不要和原有目录名称冲突。

在读取我们的文件之前,你需要知道在IDEA中编写我们的spark与在集群环境下编写我们的spark语法是有一些小差异的。IDEA用于编写和调试代码,而Linux和Spark则用于运行和管理分布式计算任务。它们之间的协作使得我们能够在IDEA中高效地开发Spark应用程序,并在Linux操作系统上的Spark集群中执行这些应用程序。

现在开始我们的任务:

val p = sc.textFile("/opt/spark-3.2.1/P/testcsv.csv")

  • val p = sc.textFile("/opt/spark-3.2.1/P/testcsv.csv"):读取我们的文件存贮到名为p的RDD中  
val pp = p.map{ line =>| val ppp = new CSVReader(new StringReader(line));| ppp.readNext();}

  • val pp = p.map{ line =>:使用map操作对RDD中的每一行文本进行处理。map是一个转换操作,它会对RDD中的每个元素应用一个函数,并返回一个新的RDD,其中包含了应用函数后的结果。
  • val ppp = new CSVReader(new StringReader(line)):对于RDD中的每一行line,创建一个新的CSVReader实例来读取该行。
  •  ppp.readNext():使用CSVReaderreadNext方法来读取并解析CSV行的下一部分
pp.collect

  •  pp.collect:收集RDD数据,以数组返回

可以看到我们文件中的数据成功输出,任务完成

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

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

相关文章

逆向案例二十五——m3u8中有AES加密怎么处理

网址链接:aHR0cHM6Ly93d3cuY2Jwb3J0YWwub3JnL2N1cGZveHBsYXkvODUyNzctMS0xLw 打开一个视频,打开开发者工具,刷新,搜索m3u8,找到这个含有所有ts连接的包 预览一下: 这与平常的m3u8有所不同,如果有下面的代码…

【SQL】数据库SQL语句

1、主键 主键值唯一,不可修改,不能为空,删除不能重用 2、数据类型(常用) char int float date timestamp 3、select select * from data; select xx,xxx from data;//取部分行 select * from data limit 100; //限…

Bezier曲线的绘制 matlab

式中: 称为基函数。 。 因为n表示次数,点数为n1,显然i表示第i个控制点。 显然在Matlab中可以同矩阵的形式来计算C(u)。 关键代码为: clc clear % 假设控制点P取值为: P [4,7;13,12;19,4;25,12;30,3]; % 因此&a…

大厂MVP技术JAVA架构师培养

课程介绍 这是一个很强悍的架构师涨薪计划课程,课程由专家级MVP讲师进行教学,分为是一个章节进行分解式面试及讲解,不仅仅是面试,更像是一个专业的架构师研讨会课程。课程内容从数据结构与算法、Spring Framwork、JVM原理、 JUC并…

opencv基础图行展示

"""试用opencv创建画布并显示矩形框(适用于目标检测图像可视化) """ # 创建一个黑色的画布,图像格式(BGR) img np.zeros((512, 512, 3), np.uint8)# 画一个矩形:给定左上角和右下角坐标&#xff0…

数据结构:去发现顺序表的魅力所在

✨✨小新课堂开课了,欢迎欢迎~✨✨ 🎈🎈养成好习惯,先赞后看哦~🎈🎈 所属专栏:http://t.csdnimg.cn/oHJAK(数据结构与算法) 小新的主页:编程版小新-CSDN博客 …

Docker入门实战教程

文章目录 Docker引擎的安装Docker比vm虚拟机快 Docker常用命令帮助启动类命令镜像命令docker imagesdocker searchdocker pulldocker system dfdocker rmi 容器命令redis前台交互式启动redis后台守护式启动Nginx容器运行ubuntu交互式运行tomcat交互式运行对外暴露访问端口 Dock…

Linux的内存管理子系统

大家好,今天给大家介绍Linux的内存管理子系统,文章末尾附有分享大家一个资料包,差不多150多G。里面学习内容、面经、项目都比较新也比较全!可进群免费领取。 Linux的内存管理子系统是Linux内核中一个非常重要且复杂的子系统&#…

防火墙操作!

当小编在Linux服务器上部署好程序以后,但是输入URL出现下述情况,原来是防火墙的原因!! 下面是一些防火墙操作! 为保证系统安全,服务器的防火墙不建议关闭!! 但是,我们可…

【网络安全】WebPack源码(前端源码)泄露 + jsmap文件还原

前言 webpack是一个JavaScript应用程序的静态资源打包器。它构建一个依赖关系图,其中包含应用程序需要的每个模块,然后将所有这些模块打包成一个或多个bundle。大部分Vue等项目应用会使用webpack进行打包,使用webpack打包应用程序会在网站js…

20240327-1-评测指标面试题

评测指标面试题 metric主要用来评测机器学习模型的好坏程度,不同的任务应该选择不同的评价指标,分类,回归和排序问题应该选择不同的评价函数. 不同的问题应该不同对待,即使都是分类问题也不应该唯评价函数论,不同问题不同分析. 回归(Regression) 平均绝对误差(MAE) 平均绝对…

CMake 学习笔记2

其他很好的总结 CMake教程系列-01-最小配置示例 - 知乎 CMake 保姆级教程(上) | 爱编程的大丙 10-补充(完结)_哔哩哔哩_bilibili 1、基本关键字 SET命令的补充 (1)SET命令设置执行标准 #增加-stdc11 set(CMAKE_CXX_STANDARD…

Terminal 美化

摘自:Mac 系统终端美化与 ZSH 多设备配置同步共享 个人对 iTerm2 等第三方终端工具不太感冒,一直在用系统内置终端。 相比之下,系统自带的 Terminal 可谓是简陋啊。 安装了 Oh My Zsh,加上一些插件,感觉还行。 再调…

如何防止软件过度封装和抽象?

一、合适的软件架构 构建可读性强、高内聚、低耦合的软件架构是软件工程中的重要原则,这有助于提高代码的维护性、扩展性和复用性。以下是一些实践方法: 1. **模块化设计**:将系统划分为一系列职责单一、功能明确的模块或组件,每…

ELK企业级日志分析系统以及多种部署

目录 ELK简介 ELK简介 ELK平台是一套完整的日志集中处理解决方案,将 ElasticSearch、Logstash 和 Kiabana 三个开源工具配合使用, 完成更强大的用户对日志的查询、排序、统计需求。 ●ElasticSearch:是基于Lucene(一个全文检索引…

windows应急中的快捷键

windows应急中的快捷键 应急的时候,快捷键很重要,记录一下windows主机排查需要用到的快捷键 windows快捷键 appwiz.cpl 是打开安装面板 程序和功能 控制面板程序和功能 搜索程序和功能 控制而板主页 卸载或更改程序 若要卸酸程序,请从列表中将其…

Python工程师面试高频题:return 和 yield之间到底有啥区别?

在编程语言 Python 中,yield 和 return 是两个在函数中用于返回值的关键字,但它们在功能和使用场景上有着本质的区别。理解这两者的区别,对于编写更高效、更灵活的 Python 代码至关重要。 看图说话 首先我们来看下面这张图片,该…

跨平台桌面应用 Electron 入门学习

本文章主要为该视频的学习笔记,如果侵权会速删。 Electron 01 课程介绍_哔哩哔哩_bilibiliElectron 01 课程介绍, 视频播放量 3046、弹幕量 0、点赞数 75、投硬币枚数 43、收藏人数 179、转发人数 2, 视频作者 极客丶张德龙, 作者简介 当你的能力还不足以撑起自己的…

使用UDP实现TCP的功能,会带来什么好处?

比较孤陋寡闻,只知道QUIC TCPQUIC握手延迟TCP需要三次握手TLS握手三次握手TLS握手放在一起,实现0RTT头阻塞问题TCP丢失保文,会影响所有的应用数据包基于UDP封装传输层Stream,Stream内部保序,Stream之间不存在相互影响…

Coursera吴恩达《深度学习》课程总结(全)

这里有Coursera吴恩达《深度学习》课程的完整学习笔记,一共5门课:《神经网络和深度学习》、《改善深层神经网络》、《结构化机器学习项目》、《卷积神经网络》和《序列模型》, 第一门课:神经网络和深度学习基础,介绍一…