【大数据存储】实验七 Spark RDD

Spark RDD操作实验

一、实验目的

(1)掌握使用Spark访问本地文件和HDFS文件的方法

(2)熟练掌握在Spark Shell中对Spark RDD的操作方法

(3)掌握Spark应用程序的编写、编译打包和运行方法

二、.实验平台

(1)操作系统:Ubuntu 22.04

(2)Spark版本:3.3.4

(3)Hadoop版本:3.2.3

三、实验步骤(在spark-shell中完成)

1、读取Linux系统本地文件,并统计出文件的行数(.count())。

创建txt文件内容如下:

val t=sc.textFile("file:///home/prx17/Desktop/cat_group")

t.count()

  1. 读取HDFS系统文件,并统计出文件的行数。

将本地文件上传至hdfs

hdfs dfs -put /home/prx17/Desktop/cat_group /data

hdfs dfs -cat /data/cat_group

统计行数

val hdfsfile=sc.textFile("hdfs://localhost:9000/data/cat_group")

  1. 通过调用parallelize方法,用数组Array={1,2,3,4,5}创建RDD,并求出个各元素的乘积。

  1. 过滤出文件中所有包含“spark”的行,将结果打印出来。

创建txt文件内容如下:

  1. 假设有一个本地文件word.txt,里面包含了很多行文本,每行文本由多个单词构成,单词之间用空格分隔。对该文本进行词频统计。

6、将下面的成绩单,根据分数降序排序。    

Marry

78

John

82

Wang

90

Lee

69

Yang

85

  1. 给定一组键值对(”Marry”,78),(”John”,89),(”Mike”,92),(”Sam”,69),(”Rose”,77),键值对中的value表示分数,计算所有同学成绩的平均分。

8、删除人名重复的记录,只保留一条记录。    

Marry

78

John

82

Lee

69

Sam

93

Marry

78

Lin

66

Wang

90

Lee

69

Zhang

85

创建文件

创建rdd

去重方法一:

去重方法二:

变成键值对形式

val key=t.map(line=>(line.split(" ")(0).trim(),line.split(" ")(1).trim().toInt))

问题与解决方法:

1.解决启动spark时报出一堆INFO,进入spark的conf文件

进入log4j.properties文件,将其中的INFO修改为WARN

重启无大量INFO

  1. lines.distinct()去重方式操作并不会对lines进行行动​​​​​​​

只有把去重结果赋给一个变量才能保存去重结果

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

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

相关文章

【学习笔记】java项目—苍穹外卖day09

文章目录 用户端历史订单模块1. 查询历史订单1.1 需求分析和设计1.2 代码实现1.2.1 user/OrderController1.2.2 OrderService1.2.3 OrderServiceImpl1.2.4 OrderMapper1.2.5 OrderMapper.xml1.2.6 OrderDetailMapper 1.3 功能测试 2. 查询订单详情2.1 需求分析和设计2.2 代码实…

JavaScript中定时器怎么工作有什么缺点?

JavaScript中的定时器主要有两种类型:setTimeout 和 setInterval。 setTimeout:这是一个一次性定时器,当指定的时间间隔(以毫秒为单位)过后,就会执行一次函数。例如: setTimeout(function() {…

解锁未来:大模型GPT的应用架构与创新实践

在人工智能的黄金时代,大模型如GPT(Generative Pre-trained Transformer)已成为技术创新和应用发展的前沿。它不仅重新定义了人机交互的方式,还在多个领域内展现出了巨大的应用潜力。本文将深入探讨大模型GPT的应用架构&#xff0…

时序预测 | Matlab实现SOM-BP自组织映射结合BP神经网络时间序列预测

时序预测 | Matlab实现SOM-BP自组织映射结合BP神经网络时间序列预测 目录 时序预测 | Matlab实现SOM-BP自组织映射结合BP神经网络时间序列预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.Matlab实现SOM-BP自组织映射结合BP神经网络时间序列预测(完整源码…

微软文本转语音和语音转文本功能更新,效果显著!

今天我要和大家分享一个新功能更新——微软的文本转语音和语音转文本功能。最近,微软对其AI语音识别和语音合成技术进行了重大升级,效果非常好,现在我将分别为大家介绍这两个功能。 先来听下这个效果吧 微软文本转语音和语音转文本功能更新 …

绿联 安装YesPlayMusic,一款高颜值的第三方网易云播放器

绿联 安装YesPlayMusic,一款高颜值的第三方网易云播放器 1、镜像 fogforest/yesplaymusic:latest 2、安装 2.1、基础设置 重启策略:容器退出时总是重启容器。 2.2、网络 桥接即可。 2.3、端口设置 容器端口80,不可变更; 本…

计算机网络(四) 网络层

网络层 一、网络层的功能1.异构网络互连2.路由与转发3.SDN的基本概念4.拥塞控制 二、路由算法1.静态路由和动态路由2.距离-向量路由算法3.链路状态路由算法4.层次路由 三、IPv41.IPv4分组2.IPv4地址与NAT3.子网划分与子网掩码、CIDR4.ARP、DHCP与ICMP 四、IPv61.IPv6特点2.IPv6…

WordPress建站教程:10步快速搭建个人网站

WordPress是一个广泛使用的内容管理系统(CMS),凭借其用户友好的界面和大量可定制的主题和插件,为WordPress 提供了多功能性和灵活性,可用于创建各种类型的网站,包括个人博客、B2B企业网站、B2C外贸网站等&a…

Python如何通过网络编程socket实现服务端和客户端?

Python中内置了一个socket模块,可以快速实现网络之间进行传输数据。 1. 实现服务端 import socket# 1.监听本机的IP和端口 # 创建一个TCP套接字# socket模块:Python中的socket模块提供了对套接字编程的支持,允许通过网络进行通信。 # socke…

SSM学习——Spring JDBC

Spring JDBC 概念 Spring的JDBC模块负责数据库资源管理和错误处理,简化了开发人员对数据库的操作。 Spring JDBC通过配置数据源和JDBC模板来配置。 针对数据库操作,Spring框架提供了JdbcTemplate类,它是Spring框架数据抽象层的基础&#…

的C++奇迹之旅:值和引用的本质效率与性能比较

文章目录 请添加图片描述 [TOC](文章目录) 📝引用# 🌠引用概念**引用**不是新定义一个变量,而是给**已存在变量取了一个别名**,编译器不会为引用变量开辟内存空间,它和它引用的变量共用同一块内存空间。>定义&#…

【C++风云录】加密的未来:现代C++库的密码学之旅

加密与安全的艺术:深入探索现代C加密库 前言 随着数字化时代的到来,数据安全成为了一个不可忽视的重要问题。为了保护敏感数据和保障通信的安全性,开发人员需要选择适合的加密与安全解决方案。本文将介绍几个流行的C加密库,包括…

ArcGIS 10.8中文版详细安装教程(附安装包)

ArcGIS 10.8中文版详细安装教程(附安装包) 关键词:ArcGIS 10.8中文版安装 1.概述 ArcGIS Desktop 10.8中文版是由ESRI公司开发的一款专业的地理信息系统,一套完整的桌面GIS软件套件,它包含ArcMap、ArcCatalog、ArcG…

C++——模板初阶

泛型编程 C语言中交换两个变量数据的内容一般是这样实现的 #include<iostream>using namespace std;void swap(int* x, int* y) {int tmp *x;*x *y;*y tmp; } int main() {int x 5;int y 7;swap(&x,&y);cout << "x" << x << …

最优算法100例之30-表示数值的字符串

专栏主页&#xff1a;计算机专业基础知识总结&#xff08;适用于期末复习考研刷题求职面试&#xff09;系列文章https://blog.csdn.net/seeker1994/category_12585732.html 题目描述 请实现一个函数用来判断字符串是否表示数值&#xff08;包括整数和小数&#xff09;。例如&a…

easyexcel 动态列导出

1. 引入easyexcel <dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>3.2.1</version></dependency> 2.导出write public void export(HttpServletResponse response) {try {String f…

c++中有哪些常用的关键字

C中有许多常用的关键字&#xff0c;这些关键字在编程中扮演着重要的角色。以下是一些C中常用的关键字及其基本用途&#xff1a; 数据类型相关&#xff1a; bool&#xff1a;布尔类型&#xff0c;用于表示真或假。true 和 false&#xff1a;是 bool 类型的字面量&#xff0c;分…

基于ArrayList实现简单洗牌

前言 在之前的那篇文章中&#xff0c;我们已经认识了顺序表—>http://t.csdnimg.cn/2I3fE 基于此&#xff0c;便好理解ArrayList和后面的洗牌游戏了。 什么是ArrayList? ArrayList底层是一段连续的空间&#xff0c;并且可以动态扩容&#xff0c;是一个动态类型的顺序表&…

Java方法的参数传递机制与递归总结

文章目录 1、方法的参数传递机制1.1、形参和实参1.2、 参数传递机制&#xff1a;值传递1.3、 举例1.4 练习 2、 递归(recursion)方法 1、方法的参数传递机制 1.1、形参和实参 若方法含有参数&#xff1a; 形参&#xff08;formal parameter&#xff09;&#xff1a;在定义方…

QT背景介绍

&#x1f40c;博主主页&#xff1a;&#x1f40c;​倔强的大蜗牛&#x1f40c;​ &#x1f4da;专栏分类&#xff1a;QT❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 目录 一、QT背景 1.1什么是QT 1.2QT的发展历史 1.3什么是框架、库 1.4QT支持的平台 1.5QT的优点 1.6QT的…