当前位置: 首页 > news >正文

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

目录

    • 使用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 SQLimport org.apache.spark.sql.SparkSessionobject 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 RDDimport 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.lryc.cn/news/102557.html

相关文章:

  • HEVC 速率控制(码控)介绍
  • 四大软件测试策略的特点和区别(单元测试、集成测试、确认测试和系统测试)
  • ingress-nginx controller安装
  • 开源快速开发平台:做好数据管理,实现流程化办公!
  • 基于深度学习的裂纹图像分类研究(Matlab代码实现)
  • TypeScript入门学习汇总
  • Vue3使用vxetable进行表格的编辑、删除与新增
  • JUC 并发编程之JMM
  • k8s集群中安装kibana 7.x 踩坑
  • CSS的一些基础知识
  • 解决多线程环境下单例模式同时访问生成多个实例
  • 转转闲鱼交易猫源码搭建
  • 设计模式精华版汇总
  • uniapp实现带参数二维码
  • 金融行业软件测试面试题及其答案
  • 强化学习QLearning 进行迷宫游戏和代码
  • Vue2 第九节 过滤器
  • Swift 对象数组去重
  • 代码随想录算法训练营day52 300.递增子序列 674.最长连续递增子序列 718.最长重复子数组
  • Android 面试题 虚拟机、进程、线程 七
  • Flutter 状态组件 InheritedWidget
  • <C++> 入门
  • 政策加持智能家居市场,涂鸦赋能客户打造“以人为本”智能生活新方式
  • 安全渗透初级知识总结-2
  • 数学建模的32种常规方法及案例代码
  • 【Django+Vue】英文成绩管理平台--20230727
  • 栈-模拟栈
  • 图观| 从王宝强、费翔、阿汤哥等新上映的电影聊聊图的智能推荐场景
  • Redis系列一:介绍
  • Java 设计模式 - 单例模式 - 保证类只有一个实例