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.sh

cd /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数据,以数组返回

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

(N-149)基于微信小程序网上商城系统

开发工具:IDEA、微信小程序 服务器:Tomcat9.0, jdk1.8 项目构建:maven 数据库:mysql5.7 前端技术:vue、uniapp 服务端技术:springbootmybatisredis 本系统分微信小程序和管理后台两部分&a…

使用Pandas实现股票交易数据可视化

一、折线图:展现股价走势 1.1、简单版-股价走势图 # 简洁版import pandas as pdimport matplotlib.pyplot as plt# 读取CSV文件df pd.read_csv(../数据集/格力电器.csv)data df[[high, close]].plot()plt.show() 首先通过df[[high,close]]从df中获取最高价和收盘…

【一招鲜】-阿里云服务器安全更新 RHSA-2021:3889: java-1.8.0-openjdk 安全和BUG修复更新

形似这种: RHSA-2021:3889: java-1.8.0-openjdk 安全和BUG修复更新 #1 查看可更新的软件java yum list updates |grep java #2 如果有可更新软件,则进行更新 yum -y update java-1.8.0-openjdk.x86_64 形似这种: RHSA-2021:4782: openssh …

你的系统是如何跟MySQL打交道的

1、Java 工程师眼中的数据库是什么东西? 从今天开始,我们将要开始一个MySQL的专栏,一起来研究MySQL数据库的底层原理和各种实践案例,以及互联网公司的技术方案。 现在我们先来看看,在一个Java工程师眼中的数据库是什么东西? 平时…

mp3怎样才能转换成wav格式?音频互相转换的方法

一,什么是WAV WAV,全称为波形音频文件(Waveform Audio File Format),是一种由微软公司和IBM公司联合开发的音频文件格式。自1991年问世以来,WAV格式因其无损的音频质量和广泛的兼容性,成为了多…

【C++】1390-请从键盘读入一个四位整数,求这个四位整数各个位的和是多少?

问题:1390-请从键盘读入一个四位整数,求这个四位整数各个位的和是多少? 类型:基础问题 题目描述: 请从键盘读入一个四位整数,求这个四位整数各个位的和是多少? 输入: 一个四位整…

thinkphp6入门(23)-- 如何导入excel

1. 安装phpexcel composer require phpoffice/phpexcel composer update 2. 前端 <form class"forms-sample" action"../../xxxx/xxxx/do_import_users" method"post" enctype"multipart/form-data"><div class"cont…

再写-全景拼接

全景拼接 1. 将读取进行灰度转化&#xff0c;并且输出图像&#xff0c;关键点和计算描述 import cv2 import numpy as np# 将读取进行灰度转化&#xff0c;并且输出图像&#xff0c;关键点和计算描述 image_left cv2.imread("C:\\Users\\HONOR\\Desktop\\image\\pinjie…

Day19-【Java SE进阶】网络编程

一、网络编程 1.概述 可以让设备中的程序与网络上其他设备中的程序进行数据交互(实现网络通信的)。java.net,*包下提供了网络编程的解决方案! 基本的通信架构 基本的通信架构有2种形式:CS架构(Client客户端/Server服务端)、BS架构(Browser浏览器/Server服务端)。 网络通信的…

轮腿机器人-五连杆正运动学解算

轮腿机器人-五连杆与VMC 1.五连杆正运动学分析2.参考文献 1.五连杆正运动学分析 如图所示为五连杆结构图&#xff0c;其中A&#xff0c;E为机器人腿部控制的两个电机&#xff0c;θ1,θ4可以通过电机的编码器测得。五连杆控制任务主要关注机构末端C点位置&#xff0c;其位置用直…

【Unity】常见性能优化

1 前言 本文将介绍下常用的Unity自带的常用优化工具&#xff0c;并介绍部分常用优化方法。都是比较基础的内容。 2 界面 2.1 Statistics窗口 可以简单查看Unity运行时的统计数据&#xff0c;当前一帧的性能数据。 2.1.1 Audio 音频相关内容。 Level&#xff1a;音量大小&a…

物联网云组态平台

TopStack 物联网云组态平台&#xff0c;提供从边缘感知及设备到云的数据采集、分析、可视化软件服务&#xff0c;提供完善的平台开发环境&#xff0c;协助客户完善垂直领域的业务应用开发。与伙伴共同打造多元产业物联网解决方案。 产品采用微前端、微服务架构进行设计&#x…

Testng测试框架(7)--测试运行

忽略测试 TestNG可以让你忽略类、特殊包、包及其子中的所有Test方法。 当在测试方法级别使用Ignore 注解&#xff0c;在功能上与Test(enabledfalse).一样。 以下例子将忽略类中所有tests。 import org.testng.annotations.Ignore; import org.testng.annotations.Test; Ign…

day9 | 栈与队列 part-1 (Go) | 232 用栈实现队列、225 用队列实现栈

今日任务 栈与队列的理论基础 (介绍:代码随想录)232 用栈实现队列(题目: . - 力扣&#xff08;LeetCode&#xff09;)225 用队列实现栈 (题目: . - 力扣&#xff08;LeetCode&#xff09; ) 栈与队列的理论基础 栈 : 先进后出 队列: 后进先出 老师给的讲解:代码随想录 …

left join limit offset 分页查询问题

1. LEFT JOIN 简介 在开始讨论LEFT JOIN的使用方法之前&#xff0c;让我们先简要回顾一下LEFT JOIN的概念。 LEFT JOIN是一种用于将左表和右表连接起来的操作。它会返回左表中的所有记录&#xff0c;并且对于每条左表记录&#xff0c;如果在右表中找到符合条件的记录&#xf…

js+网络摄像头实现人体肢体关键点动作捕获

最近有一个项目&#xff0c;客户需要用户人体姿势识别&#xff0c;进行表演考核用途&#xff0c;或者康复中心用户恢复护理考核&#xff0c;需要用摄像头进行人体四肢进行肢体关键点对比考核&#xff0c;资料还是太少了。只有个别大佬发了部分技术指导。感觉写的不错。 阿里云…

算法第四十一天-排除排序链表中的重复元素Ⅱ

排除排序链表中的重复元素Ⅱ 题目要求 解题思路 题意&#xff1a;在一个有序链表中&#xff0c;如果一个节点的值出现不止一次&#xff0c;那么把这个节点删除掉 重点&#xff1a;有序链表&#xff0c;所以&#xff0c;一个节点的值出现不止一次&#xff0c;那么他们必相邻。…

CMC学习系列 (7):β 范围 EEG-EMG 相干性与皮质光谱功率有关

CMC学习系列:β 范围 EEG-EMG 相干性与皮质光谱功率有关 0. 引言1. 主要贡献2. 方法2.1 目标2.2 实验范式2.3 数据处理和分析 3. 结果4. 讨论5. 总结欢迎来稿 论文地址&#xff1a;https://www.sciencedirect.com/science/article/abs/pii/S1053811907001760 论文题目&#xff…

一、接口自动化之pytest 运行参数

1、在跟目录下创建一个配置项pytest.ini [pytest] testpaths./testcases markersp0:高于优先级test:测试环境pro:生成环境2、打标签 3、运行命名pytest -m "p0"

单链表详解(无哨兵位),实现增删改查

1.顺序表对比单链表的缺点 中间或头部插入时&#xff0c;需要移动数据再插入&#xff0c;如果数据庞大会导致效率降低每次增容就需要申请空间&#xff0c;而且需要拷贝数据&#xff0c;释放旧空间增容造成浪费&#xff0c;因为一般都是以2倍增容 2.链表的基础知识 链表也是线…