MAC M3电脑在idea上搭建Spark环境并跑通第一个程序

我的电脑是Macbook Pro,最近在学习Spark,想要在idea里搭建Spark环境,为之后的Spark编程作准备。下面是在MAC版本的idea里配置Spark环境。

1. 准备工作

1.安装 JDK

确保Mac 上已经安装了 JDK 8 或更高版本。
可通过 java -version 查看是否安装。

java -version

输出以下内容,说明安装成功
在这里插入图片描述

JDK8的安装步骤可参考教程:JDK8安装教程

2.安装 Apache Spark

  • 下载 Spark 二进制包:Spark-3.3.1
  • 解压缩到目标目录,例如 /opt/spark
  • 配置环境变量:
export SPARK_HOME=/opt/spark
export PATH=$SPARK_HOME/bin:$PATH
  • 验证 Spark 是否安装成功:
spark-shell

出现以下界面,说明spark安装成功
在这里插入图片描述

3.安装 Maven(如果未安装)

  • 安装命令:
brew install maven
  • 验证:
mvn -v

出现以下说明安装成功
在这里插入图片描述

2. 配置 IntelliJ IDEA

1.打开IDEA

2.安装 Scala 插件

  • 打开 IDEA -> Preferences -> Plugins -> Marketplace -> 搜索 Scala 并安装插件。

在这里插入图片描述

3.创建新项目

  • 选择New Project
  • 选择Maven Archetype
  • 配置JDK,选择已安装的JDK8
  • 填写项目名称和目录,点击Finish
  • GroupId:你的组织或项目名称,例如 com.example。
  • ArtifactId:项目的名称,例如 spark-app。
  • Version:默认即可(例如 1.0-SNAPSHOT)。
    在这里插入图片描述

4.配置 Spark 依赖

1.打开项目中的 pom.xml 文件,添加 Spark 相关依赖:

<dependencies><!-- Spark Core --><dependency><groupId>org.apache.spark</groupId><artifactId>spark-core_2.12</artifactId><version>3.4.1</version></dependency><!-- Spark SQL --><dependency><groupId>org.apache.spark</groupId><artifactId>spark-sql_2.12</artifactId><version>3.4.1</version></dependency>
</dependencies>

在这里插入图片描述
2.点击 IDEA 中的 Maven 面板,点击刷新按钮(右上角的箭头),下载依赖。

4.编写 Spark 程序

1.在 src/main/javasrc/main/scala 中创建你的程序文件。例如创建一个 WordCountApp.java
2.编写 Spark 应用程序:

import org.apache.spark.api.java.function.FlatMapFunction;
import org.apache.spark.sql.*;import java.util.Arrays;public class WordCountApp {public static void main(String[] args) {SparkSession spark = SparkSession.builder().appName("WordCountApp").master("local[*]")  //本地运行模式.getOrCreate();Dataset<Row> data = spark.read().text("input.txt");Dataset<Row> wordCounts = data.flatMap((FlatMapFunction<Row,String>)row -> Arrays.asList(row.getString(0).split(" ")).iterator(), Encoders.STRING()).groupBy("value").count();wordCounts.show();spark.stop();}
}

input.txt的内容如下:

hello world
hello spark
hello world from java
spark is fun and easy to use
apache spark is a fast and general engine for large-scale data processing
data processing with spark is both fast and simple
spark can be used for streaming batch processing machine learning and graph processing
hello apache spark

5.运行和调试

1.在 IDEA 中,右键点击 WordCountApp 文件,选择 Run ‘WordCountApp’。
2.如果运行成功,你会看到 Spark 的日志输出以及程序的运行结果。
运行结果如下:
在这里插入图片描述

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

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

相关文章

欧科云链研究院:AI时代,如何证明“我是我”?

OKG Research&#xff5c;编辑 近日&#xff0c;OpenAI 发布了新模型 Sora。这是一款高性能的文本到多模态生成工具&#xff0c;支持从文本生成精细的图像和动态视频。 相较早先发布的视频样例&#xff0c;该功能目前已经可以由用户真实上手体验&#xff0c;目前由于服务过载…

任务5 Web服务配置与管理

Web服务概述 Web服务简介 当今人们获取和传播信息的主要方式之一。 Web服务提供的资源多种多样&#xff0c;可能是简单的文本&#xff0c;也可能是图片、音频和视频等多媒体数据。 常用的浏览器有Chrome、Internet Explorer&#xff0c;以及Firefox等。 手机等移动设备成为…

Opencv之图像添加水印

一、实验原理 在图片处理领域&#xff0c;添加水印是一种常见的操作。通过叠加图像的方式&#xff0c;可以将水印无缝嵌入目标图像的指定位置。其基本原理包括以下步骤&#xff1a; 1、模板输入&#xff08;掩膜生成&#xff09;&#xff1a; 将水印图片转换为灰度图&#xf…

「Mac玩转仓颉内测版50」小学奥数篇13 - 动态规划入门

本篇将通过 Python 和 Cangjie 双语介绍动态规划的基本概念&#xff0c;并解决一个经典问题&#xff1a;斐波那契数列。学生将学习如何使用动态规划优化递归计算&#xff0c;并掌握编程中的重要算法思想。 关键词 小学奥数Python Cangjie动态规划斐波那契数列 一、题目描述 …

远程调试软件对比与使用推荐

远程调试软件对比与使用推荐 远程调试是现代软件开发中不可或缺的一部分&#xff0c;尤其是在处理分布式系统、云端服务或远程服务器上的问题时。以下是对几种常见远程调试工具的详细对比和推荐使用场景。 1. GDB (GNU Debugger) 特点 开源&#xff1a;完全免费且开源&…

HTML和JavaScript实现商品购物系统

下面是一个更全面的商品购物系统示例&#xff0c;包含新增商品、商品的增加删除以及结算找零的功能。这个系统使用HTML和JavaScript实现。 1.功能说明&#xff1a; 这个应用程序使用纯HTML和JavaScript实现。 包含一个商品列表和一个购物车区域。商品列表中有几个示例商品&a…

将带注释的Word文档改造成点击注释引用即可弹窗显示注释的HTML文档

阅读中国古籍电子书的时候&#xff0c;往往有很多注释。在正文和注释之间来回滚动页面是一件挺麻烦的事&#xff0c;比较方便的做法是将它编辑成通过点击注释引用即将注释弹出显示在引用所在位置的HTML文档&#xff0c;然后利用HTML文档制作成PDF或者epub文件&#xff0c;就比较…

Harmony Next开发通过bindSheet绑定半模态窗口

示例概述 Harmony Next开发通过bindSheet绑定半模态窗口 知识点 半模态窗口父子组件传值 组件 LoginComponent Component struct LoginComponent {// Prop 父子单项绑定值Prop message:string // Link 父子双向绑定值Link userName:stringLink password:stringLink isSh…

codeforces一些题目思路复盘

codeforces round 919 dv2 C Partitioning the Array 大致题意&#xff0c;对于n约数i&#xff0c;我们把原数组分成份&#xff0c;并且每份中有i个元素&#xff0c;对于每个分组情况&#xff0c;如果存在一个数m使得数组中元素modm后使得每个部分的数组完全相同&#xff0c;如…

ElasticSearch 简介

一、什么是 ElastcSearch&#xff1f; ElasticSearch 是基于 Lucene 的 Restful 的分布式实时全文搜索引擎。 1.1 ElasticSearh 的基本术语概念 index 索引 索引类似与 mysql 中的数据库&#xff0c;ES 中的索引是存储数据的地方&#xff0c;包含了一堆有相似结构的文档数据…

Please activate LaTeX Workshop sidebar item to render the thumbnail of a PDF

Latex代码中使用pdf图片&#xff0c;无法预览&#xff0c;提示&#xff1a; Please activate LaTeX Workshop sidebar item to render the thumbnail of a PDF 解决办法&#xff1a; 点击左边这个刷新下即可

测试工程师的职业规划

测试人员在管理上的发展 基层测试管理者&#xff1a;测试组长 工作内容&#xff1a;安排小组工作&#xff0c;提升小组成员测试能力&#xff0c;负责重要的测试工作。 负责对象&#xff1a;版本&#xff0c;项目 中层测试管理者&#xff1a;测试经理 负责对象&#xff1…

Linux系统下多任务管理器:screen使用指南

文章目录 安装快速入门启动Screen会话创建和管理窗口退出和恢复会话 高级功能多用户支持日志记录复制粘贴模式自定义配置 在Linux和类Unix系统的世界里&#xff0c;命令行是用于与系统交互的主要方式之一。然而&#xff0c;当涉及到远程服务器管理、长时间运行的任务或者同时处…

C缺陷与陷阱 — 8 编译与链接

目录 1 程序的编译过程 2 动态链接的优缺点 2.1 动态链接的优点 2.2 动态链接的缺点 2.3 只使用动态链接 3 函数库链接的5个特殊秘密 4 警惕Interpositioning 5 产生链接器报告文件 1 程序的编译过程 程序的编译过程是将源代码转换成计算机可以执行的机器代码的过程。…

Harmony Next开发Navigation页面跳转

概述 Harmony Next开发Navigation页面跳转 知识点 Navigation通过NavPathStack路由跳转Navigation以弹窗的方式打开NavDestination页面Menu配置 组件 NavTest Entry Component struct NavTest {Provide pageInfos: NavPathStack new NavPathStack()Builder PageMap(name…

大模型系列4--开源大模型本地部署到微调(WIP)

背景 一直想真正了解大模型对硬件资源的需求&#xff0c;于是准备详细看一篇视频&#xff0c;将核心要点总结记录下。本文内容参考视频&#xff1a;保姆级教程&#xff1a;6小时掌握开源大模型本地部署到微调&#xff0c;感谢up主 训练成本 训练 > 微调 > 推理训练GPT…

仿《公主连结》首页场景的制作(附资源包)

先看效果&#xff08;主要实现点击按钮切换图片&#xff0c;未解锁按钮弹出提示&#xff0c;点击过后播放动画&#xff09; 预备知识&#xff08;单例模式&#xff0c;携程&#xff0c; Resources.Load加载资源的方式&#xff09; 资源准备&#xff08;底部按钮7个图标&#x…

Redis - 集合 Set 及代码实战

Set 类型 定义&#xff1a;类似 Java 中的 HashSet 类&#xff0c;key 是 set 的名字&#xff0c;value 是集合中的值特点 无序元素唯一查找速度快支持交集、并集、补集功能 常见命令 命令功能SADD key member …添加元素SREM key member …删除元素SCARD key获取元素个数SI…

基于Llamaindex的网页内容爬取实战

目的 本文不关注如何解析网页 html 元素和各种 python 爬虫技术&#xff0c;仅作为一种网页数据的预处理手段进行研究。Llamaindex 也并不是爬虫技术的集大成者&#xff0c;使用它是为了后续的存查一体化。 安装依赖 pip install llama-index-readers-web # pip install llam…

《九重紫》逐集分析鉴赏第一集(下)

主标题&#xff1a;《九重紫》一起追剧吧 副标题&#xff1a;《九重紫》逐集分析鉴赏第一集&#xff08;下&#xff09;/《九重紫》逐集分析鉴赏1 接上回分解&#xff0c;窦昭和宋墨都安置城外万佛寺 交谈没一会儿&#xff0c;天还未亮&#xff0c;兵临寺下 记住这个人&…