【用IDEA基于Scala2.12.18开发Spark 3.4.1 项目】

news2024/11/15 16:01:40

目录

    • 使用IDEA创建Spark项目
    • 设置sbt依赖
    • 创建Spark 项目结构
    • 新建Scala代码

使用IDEA创建Spark项目

打开IDEA后选址新建项目

选址sbt选项
在这里插入图片描述

配置JDK
在这里插入图片描述
在这里插入图片描述

debug

解决方案
在这里插入图片描述
在这里插入图片描述

相关的依赖下载出问题多的话,可以关闭idea,重启再等等即可。

设置sbt依赖

  • 将sbt源设置为国内源
  • 基于sbt添加依赖
    • spark-sql
    • spark-core
ThisBuild / version := "0.1.0-SNAPSHOT"

ThisBuild / scalaVersion := "2.12.18"

lazy val root = (project in file("."))
  .settings(
    name := "Spark341Learning",
    idePackagePrefix := Some("cn.lh.spark341"),
    resolvers += "HUAWEI" at "https://mirrors.huaweicloud.com/repository/maven",
    updateOptions := updateOptions.value.withCachedResolution(true),
    libraryDependencies += "org.apache.spark" %% "spark-core" % "3.4.1",
    libraryDependencies += "org.apache.spark" %% "spark-sql" % "3.4.1"
  )

创建Spark 项目结构

在这里插入图片描述

新建Scala代码

Spark sql simleapp代码如下:

package cn.lh.spark341
package SQL

import org.apache.spark.sql.SparkSession

object SimpleApp {

  def main(args: Array[String]): Unit = {
    //    Spark开发三部曲
    //    step 1: 准备Spark会话 spark sql 会话
    val spark = SparkSession.builder.appName("SimpeApp").master("local[2]").getOrCreate()
    //    step 2:Spark处理逻辑
    val logF = "D:\\Programs\\spark-3.4.1-bin-hadoop3\\README.md"
    val logD = spark.read.textFile(logF).cache()
    val numA = logD.filter(line => line.contains("a")).count()
    val numB = logD.filter(line => line.contains("b")).count()
    println(s"Lines with a: $numA, Lines with b: $numB")
    //    step 3: 关闭Spark会话
    spark.stop()
  }

}

在这里插入图片描述

Spark RDD代码如下:

package cn.lh.spark341
package RDD

import org.apache.spark.{SparkConf, SparkContext}

object RDDtest1 {

  def main(args:Array[String]): Unit ={
//    Spark RDD开发三部曲
//    step1: 创建SparkContext对象
    val conf = new SparkConf().setAppName("RDDtest1").setMaster("local[2]")
    val sc = new SparkContext(conf)
//    step2: Spark处理逻辑代码
    val data = Array(1,2,3,4,5)
    val distData = sc.parallelize(data)
    val i: Int = distData.reduce((a, b) => a + b)
//    step3:关闭SparkContext对象
    println(i)
    sc.stop()
  }

}

在这里插入图片描述

到此,基于Scala2.12.18开发Spark 3.4.1 项目完成。

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

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

相关文章

Linux6.2 ansible 自动化运维工具(机器管理工具)

文章目录 计算机系统5G云计算第一章 LINUX ansible 自动化运维工具(机器管理工具)一、概述二、ansible 环境安装部署三、ansible 命令行模块1.command 模块2.shell 模块3.cron 模块4.user 模块5.group 模块6.copy 模块7.file 模块8.hostname 模块9.ping …

【Python入门系列】第十九篇:Python基于协同过滤推荐系统的实现

文章目录 前言一、协同过滤算法简介二、计算相似度三、Python实现简单的协同过滤推荐系统总结 前言 推荐系统是现代互联网平台中的重要组成部分,它可以根据用户的兴趣和行为,向其推荐个性化的内容。协同过滤是推荐系统中常用的一种方法,它基…

POI信息点的diPointX、diPointY转化成经纬度

需求:接口返回某个地点的数据(diPointX、diPointY),前端需把该地点转化成经纬度形式在地图上进行Marker标记。 实现:(查找百度地图开发文档) 代码验证: console.log(new BMap.Merca…

性能测试问题之慢sql分析

我们在做性能测试的时候,慢sql也可以说是很常见问题,我的性能测试生涯几乎经常遇到慢sql,那么我们怎么来判断有没有慢sql呢,有慢sql后怎么来分析优化呢?如图: 通过上图看可以看到当存在慢sql的时候,这里会…

火爆全网,接口自动化测试-DDT数据驱动实战总结,一篇贯通...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 DDT(D…

信息安全:网络安全体系 与 网络安全模型.

信息安全:网络安全体系 与 网络安全模型. 网络安全保障是一项复杂的系统工程,是安全策略、多种技术、管理方法和人员安全素质的综合。一般而言,网络安全体系是网络安全保障系统的最高层概念抽象,是由各种网络安全单元按照一定的规…

python更换iterm2背景图片

背景 在看知乎的时候,突然看到了这样的一个视频教程,用python代码更换iterm2的背景。于是我细细的研究一下。视频地址 视频中提到的参考文章地址: iterm2官网官方仓库 实现过程 我直接把作者的代码粘贴如下,首先需要安装iter…

pycharm 使用远程服务器 jupyter (本地jupyter同理)

1. 远程服务器miniconda 环境中创建jupyter环境 # 1. 激活环境 conda activate envname#2. 在环境中安装jupyter pip install jupyter # 或者 conda install jupyter#3. 生成jupyter_notebook_config.py文件 jupyter notebook --generate-config#4. 设置密码 jupyter noteboo…

docker—springboot服务通信

文章目录 docker—springboot服务通信一、方式1、host 二、坑点末、参考资料 docker—springboot服务通信 一、方式 1、host 步骤: host文件增加域名解析: 127.0.0.1 rabbitmqapplication.yml: application.yml中,连接方式使用…

【HarmonyOS】API6使用storage实现轻量级数据存储

写在前面 本篇内容基于API6 JS语言进行开发,通过结合轻量级数据存储开发指导的文档,帮助大家完成一个实际的代码案例,通过这个小案例,可以实现简单数据的存储。 参考文档:文档中心 1、页面布局 首先我们编写一个简单…

C++容器——list的模拟实现

目录 一.list的基本结构 二. 接下来就是对list类构造函数的设计了: 三.链表数据的增加: 四.接下来就是迭代器的创建了: 四.简单函数的实现: 五.构造与析构 六.拷贝构造和赋值重载 传统写法: 现代写法: 七.迭…

Docker—— consul的容器服务更新与发现

Docker—— consul的容器服务更新与发现 一、Consul概述1.什么是服务注册与发现2.什么是consul 二、consul 部署1.consul服务器①. 建立 Consul 服务②. 查看集群信息③. 通过 http api 获取集群信息 2.registrator服务器①. 安装 Gliderlabs/Registrator②. 测试服务发现功能是…

别再被割韭菜了,小白几块钱就能打造专属AI知识库

随着AIGC各种项目的越发成熟,打造自己的知识库,对于企业和个人来说就变的门槛越来越低,自己的知识库,有许多的好处,上传自己的知识文档,能让对话变的更加垂直专业。 但是博主看到网站很多商家动辄几千的收…

使用docker-compose搭建lnmpr环境

源码gitee compose 使用的三个步骤: • 使用 Dockerfile 定义应用程序的环境。 • 使用 docker-compose.yml 定义构成应用程序的服务,这样它们可以在隔离环境中一起运行。 • 最后,执行 docker-compose up -d 命令来启动并运行整个应用程序…

Carla教程一:动力学模型到LQR

Carla教程一、动力学模型到LQR 从运动学模型和动力学模型到LQR 模型就是可以描述车辆运动规律的模型。车辆建模都是基于自行车模型的设定,也就是将四个轮子抽象为自行车一样的两个轮子来建模。 1、运动学模型 运动学模型是基于几何关系分析出来的,一般适用于低俗情况下,…

【西安交通大学】:融合传统与创新的学府之旅

【西安交通大学】:融合传统与创新的学府之旅 引言历史与发展学校特色学科优势院系专业校园环境与设施学生生活与社团活动校友荣誉与成就未来发展展望总结🍀小结🍀 🎉博客主页:小智_x0___0x_ 🎉欢迎关注&…

【Linux】Http协议的学习

文章目录 前言一、了解HTTP协议是如何规定的总结 前言 HTTP协议(超文本传输协议)和我们上一篇写的网络版计算器中自己定制的协议一样,只不过Http协议是是一个非常好用的协议,所以我们可以直接用现成的不用自己再搞一套了。 一、了…

LeetCode Top100 Liked 题单(序号1~17)

01Two Sum - LeetCode 我自己写的代码【193ms】 因为不知道怎么加cmp函数&#xff0c;就只能pair的first设为值了&#xff0c;但其实这也是瞎做&#xff0c;应该也是O(n&#xff09;吧 class Solution { public:vector<int> twoSum(vector<int>& nums, int …

【观察】智能运维的“下半场”,看云智慧如何“开新局”

毫无疑问&#xff0c;随着数字化转型的加速&#xff0c;越来越多的企业正在把数字化战略提升到一个全新的高度&#xff0c;转型的进程也正从“浅层次”的数字化走向“深层次”的数字化。 也正因此&#xff0c;过去传统的人工运维方式越来越“捉襟见肘”&#xff0c;谋求运维模…

飞桨paddlespeech语音唤醒推理C定点实现

前面的文章&#xff08;飞桨paddlespeech语音唤醒推理C浮点实现&#xff09;讲了飞桨paddlespeech语音唤醒推理的C浮点实现。但是嵌入式设备通常CPU频率低和memory小&#xff0c;在嵌入式设备上要想流畅的运行语音唤醒功能&#xff0c;通常用的是定点实现。于是我就在浮点实现&…