Spark 初级编程实践

什么是Spark?
Spark是一个快速、通用、可扩展的大数据处理引擎,最初由加州大学伯克利分校的AMPLab开发。它提供了高级API,用于在大规模数据集上执行并行处理。Spark支持多种编程语言,包括Java、Scala、Python和R,因此被广泛应用于大数据分析和机器学习等领域。

一、目的

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

2、掌握 Spark 应用程序的编写、编译和运行方法

二、平台

(1)操作系统:Ubuntu20.04或其他稳定版本;

(2)Spark 版本:3.1.3;

(3)Hadoop 版本:3.1.3。

三、步骤

1、Spark读取文件系统的数据

(1)在 spark-shell 中读取 Linux 系统本地文件“/home/hadoop/test.txt”,然后统计出文件的行数;

启动spark-shell:

cd /usr/local/spark
bin/spark-shell

在这里插入图片描述

读取文件:

val textFile=sc.textFile("file:///home/hadoop/test.txt")

在这里插入图片描述

统计文件的行数:

textFile.count()

在这里插入图片描述

(2)在 spark-shell 中读取 HDFS 系统文件“/user/hadoop/test.txt”(如果该文件不存在, 请先创建),然后,统计出文件的行数;

启动Hadoop,向hdfs中上传文件test.txt:

./sbin/start-dfs.sh
./bin/hdfs dfs -put ~/test.txt
./bin/hdfs dfs -ls

在这里插入图片描述

读取 HDFS 系统文件“/user/hadoop/test.txt”并统计文件的行数:

val textFile=sc.textFile("hdfs://localhost:9000/user/hadoop/test.txt")
textFile.count()

在这里插入图片描述

(3)编写独立应用程序(使用 Scala 语言),读取 HDFS 系统文件“/user/hadoop/test.txt”(如果该文件不存在,请先创建),然后,统计出文件的行数;通过 sbt 工具将整个应用程序编译打包成 JAR 包,并将生成的 JAR 包通过 spark-submit 提交到 Spark 中运行命令。

查看sbt版本,验证sbt安装成功:

cd /usr/local/sbt
./sbt sbtVersion

在这里插入图片描述

创建一个文件夹 sparkapp 作为应用程序根目录并编写HDFStest.scala文件:

cd ~           # 进入用户主文件夹
mkdir ./sparkapp        # 创建应用程序根目录
mkdir -p ./sparkapp/src/main/scala     # 创建所需的文件夹结构
cd sparkapp/src/main/scala
touch HDFStest.scala #创建名为HDFStest.scala的文件
gedit HDFStest.scala #编写程序

HDFStest.scala文件内容:

import org.apache.spark.SparkContext
import org.apache.spark.SparkContext._
import org.apache.spark.SparkConf
 
object HDFStest {
   
    def main(args: Array[String]) {
   
        val logFile = "hdfs://localhost:9000/user/hadoop/test.txt"
        val conf = new SparkConf().setAppName

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

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

相关文章

Cloud模型matlab

学习资料python 多维正态云python 预备知识: 如何获取具有特定均值和方差的正态分布随机数。首先,初始化随机数生成器,以使本示例中的结果具备可重复性。 rng(0,twister);基于均值为 500 且标准差为 5 的正态分布创建包含 1000 个随机值的向…

QT应用篇:QT解析与生成XML文件的四种方式

四种常见的解析 XML 的方式(DOM、SAX、以及基于 Qt 的 XmlStreamReader)各有自己的优缺点,适合不同的应用场景。 DOM 适合小型且结构简单的 XML 文件,需要频繁修改和操作整个文档结构的情况。SAX 适合大型 XML 文件,以及只需读取不需要修改的情况。基于 Qt 的 XmlStreamRe…

Excel5:自动化周报的制作

自动化周报的数据引用来源于8月成交数据-纯数值表格,因为8月成交数据表格中部分单元格中有vlookup函数,且存在跨表连接。 对于跨表连接的解释和说明? 首先打开我们之前做好的成交数据。打开后我们可以看到这上面出现了一个安全警告&#xff0…

第57、58颗北斗导航卫星发射成功

第57、58颗北斗导航卫星发射成功! 12月26日11时26分,我国在西昌卫星发射中心用长征三号乙运载火箭与远征一号上面级,成功发射第57、58颗北斗导航卫星。 这组卫星属中圆地球轨道卫星(MEO卫星),是我国北斗三…

新年新风貌 苏州金龙蔚蓝公交护航高贸区“效率巴士”!

1月4日,由苏州市公交集团园区公司与园区高贸区管委会联合推出的4条“高贸区效率巴士”正式开行,这四条线路惠及包括苏州群策科技有限公司、荣旗工业科技有限公司等在内的20余家高贸区重点企业。线路开行5天来,效率巴士让不少企业员工感受到了…

kubernetes ResourceQuotas Limits(资源配额)

开头语 写在前面:如有问题,以你为准, 目前24年应届生,各位大佬轻喷,部分资料与图片来自网络 内容较长,页面右上角目录方便跳转 简介 当多个用户或团队共享具有固定节点数目的集群时,人们会…

AI人工智能虚拟现实行业发展分析

AI人工智能和虚拟现实是当今科技领域最受关注和研究的两个领域。这两项技术的迅速发展给各行各业带来了巨大的变革和机遇。在过去的几年里,AI和虚拟现实已经取得了显著的进展,并且有着广阔的发展前景。 AI人工智能作为一种模拟人类智能的技术&#xff0…

web端播放rtsp视频流(摄像头监控视频)教程

文章目录 前言一、ffmpeg是什么?二、ffmpeg安装1.下载2.安装 三、node搭建websocket服务四、web客户端播放视频 前言 像海康大华一些摄像头或者直播源 为rtsp视频流,想在web上播放必须进行协议转换。已知一些方案例如rtsp转rtmp需要flash,现…

vue3中路由的使用(详细讲解)

1、路由的简介 路由(route):就是根据特定的规则将数据包或请求从源地址传输到目标地址的过程。 在前端或者vue3项目中路由主要用于构建单页面应用程序(SPA),其中所有的页面都在同一个HTML文件中加载,通过JavaScript动…

使用Moonbuilders Academy平台,学习DApp开发

Moonbeam团队于2022年宣布开放Moonbuilders Academy。这是一套以开发为中心的异步学习课程,用于学习如何在Moonbeam上构建跨链DApp。 如何从官网进入平台? 点击http://moonbeam.network 鼠标移动至 “Builders”,在Resources下方选择“Moo…

团结引擎 | 发布微信小游戏的那些坑

问题1 问题:Failed to download file Build/安装包.framework.js.unityweb. Loading web pages via a file:// URL without a web server is not supported by this browser. Please use a local development web server to host content, or use the Build and Ru…

多链混沌:Layer2 格局演变与跨链流动性的新探索

点击查看原文:多链混沌:Layer2 格局演变与跨链流动性的新探索 如今的 Crypto 是一个由多链构成的混沌世界。曾经,以太坊聚集了加密世界绝大多数的流动性与 DeFi 应用,但现在其 TVL 占比已经降到 60% 以下,并仍处于下降…

【人工智能】深入了解人工智能的核心算法与应用实践

人工智能 学习AI要看的第一本书人工智能应当以人为本人工智能(第3版)通晓六点,明白人工智能是怎么回事基本概念和历史基础知识基于知识的系统高级专题现在和未来安全和编程 人工智能已经是基础学科 学习AI要看的第一本书 人工智能知识对于当…

Ubuntu上安装VMware+win11系统手册

Ubuntu安装vmware 下载: Linux 版下载地址:https://www.vmware.com/go/getworkstation-linux 安装: sudo chmod x VMware-Workstation-Full-17.5.0-22583795.x86_64.bundle 执行安装命令: sudo ./VMware-Workstation-Full-17.5.0…

java接口自动化 —— 接口测试的用例设计!

1.简介 在这篇文章里,我们来学习一下接口测试用例设计,主要是来学习一些用例设计要点。其实说白了,接口用例设计和功能用例设计差不多,照猫画虎即可。不要把它想象的多么高大上,多么的难,其实一样&#xff…

NVIDIA Container Toolkit(NVIDIA Docker)

引言 Nvidia Docker该项目已被NVIDIA Container Toolkit取代。此存储库提供的工具已被弃用,并且该存储库已存档。 nvidia-docker不再支持包装器,并且 NVIDIA Container Toolkit 已进行扩展,允许用户配置 Docker 以使用 NVIDIA Container Ru…

四大攻击类型并存,NIST 警告人工智能系统带来的安全和隐私风险

美国国家标准与技术研究院 (NIST) 近日发布了有关对抗性机器学习 (AML) 攻击和缓解措施指南, 呼吁人们再度关注近年来人工智能 (AI) 系统部署增加所带来的隐私和安全挑战,并表示这类系统目前没有万无一失的方法进行保护。 NIST指出,这些安全…

9.国际化

国际化_ 页面中获取国际化资源信息 在页面上能够根据浏 览器语言设置的情况对文本, 时间, 数值进行本地化处理 可以在 bean 中获取国际化资源文件 Locale 对应的消息 可以通过超链接切换 Locale, 而不再依赖于浏览器的语言设置情况 实现 使用 JSTL 的 fmt 标签 在 bean 中注…

Pytorch张量通过索引获取指定数据

import torch x torch.tensor([1,2,3])x Out[3]: tensor([1, 2, 3])x[0] # 索引操作:取单个数字 Out[4]: tensor(1)x[0:1] # 切片操作:可以保持维度不变 Out[5]: tensor([1])x[torch.tensor([True,False,True])] # 布尔值索引,通过条件筛…

【Docker】私有仓库

目录 1.搭建 2. 上传镜像 3.拉取镜像 1.搭建 1.拉取私有仓库的镜像 docker pull registry 2.创建私有仓库容器 docker run -id --nameregistry -p 5000:5000 registry 3.打开浏览器,输入地址(http:私有仓库服务器ip:5000/v2/_catalog) 出现如图表示私…