Spark-Scala语言实战(16)

news/2024/10/20 13:44:33/

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

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.ppmy.cn/news/1426913.html

相关文章

ChatGPT助力:写作步步高

ChatGPT无限次数:点击直达 html ChatGPT助力:写作步步高 引言 在当今信息爆炸的时代,写作作为一种重要的表达方式,扮演着不可或缺的角色。然而,随之而来的挑战是如何保持高质量的创作并不断提升写作水平。本文将探讨如何借助…

修改Ubuntu的镜像源为中科大镜像源

修改Ubuntu的镜像源为中科大镜像源 1、首先使用以下命令备份现有的镜像源: cd /etc/apt sudo cp sources.list sources.list.bak 2、使用以下命令打开镜像源文件: sudo vim /etc/apt/sources.list 3、在vim插入模式下使用以下内容替换掉原镜像…

Flask vs FastApi 性能对比测试

Flask和Fastapi都是Python下流行的Web框架,前者有大量拥趸,是一个老牌框架,后者相对较新,但是利用了异步技术和uvloop,都说性能比Flask好很多,于是就我就对比实测一下。由于Windows下不支持uvloop&#xff…

The O-one:开源语言模型计算机的革命

在人工智能的浪潮中,The O-one作为一个创新的开源项目,正以其独特的功能和开放性吸引着全球开发者和科技爱好者的目光。这个项目不仅仅是一个简单的语言模型,它是一个能够通过语音交互与计算机进行对话的智能系统,极大地提升了人机…

解决Keil V5.38 和 ST-Link V3 Debug不能运行问题

目录 概述 1 问题描述 1.1 情况一 1.2 情况二 1.3 情况三 2 解决方法 2.1 认识Keil Mico Lib 2.2 使能Keil Mico Lib 3 验证 3.1 进入C程序Main验证 3.2 断点验证 3.3 上电重启验证 4 结论 笔者使用的验证代码下载地址: stm32-freeRTOS-queue资源-CSD…

爬虫 Selector 选择器查找元素

// <!--jsoup解析工具所需依赖--> // <dependency> // <groupId>org.jsoup</groupId> // <artifactId>jsoup</artifactId> // <version>1.10.3</version> // </depende…

DNS的背景工作原理和作用

1.背景: DNS的背景起源于20世纪60年代末的美国国防部高级研究计划局&#xff08;ARPA&#xff09;建立的试验性计算机网络ARPAnet。DNS&#xff0c;全称域名系统&#xff08;Domain Name System&#xff09;&#xff0c;是为了解决互联网上主机名与IP地址对应关系而发展起来的…

文件夹变白色文件,数据恢复全攻略助你轻松找回!

在日常的电脑使用中&#xff0c;你是否曾遇到过文件夹突然变成了白色文件的情况&#xff1f;这种看似无害的变化&#xff0c;实则可能隐藏着数据丢失的风险。当你发现原本正常的文件夹图标变成了无关联程序的白板图标&#xff0c;且无法正常打开时&#xff0c;内心无疑是焦虑不…