spark 入门教程

一、安装scala环境

官网下载地址 Download | The Scala Programming Language,本次使用版本为sacla2.11.12,将压缩包解压至指定目录,配置好环境变量,控制台验证是否安环境是否可用:

二、添加pom依赖

创建一个maven项目

1、添加scala的sdk依赖

复制代码
  <properties>
    <scala.version>2.11.12</scala.version>
  </properties>
 
   <dependency>
      <groupId>org.scala-lang</groupId>
      <artifactId>scala-library</artifactId>
      <version>${scala.version}</version>
    </dependency>
 
    <dependency>
      <groupId>org.scala-lang</groupId>
      <artifactId>scala-compiler</artifactId>
      <version>${scala.version}</version>
    </dependency>
 
    <dependency>
      <groupId>org.scala-lang</groupId>
      <artifactId>scala-reflect</artifactId>
      <version>${scala.version}</version>
    </dependency>

2、添加spark依赖

复制代码
  <dependency>
      <groupId>org.apache.spark</groupId>
      <artifactId>spark-core_2.11</artifactId>
      <version>2.4.8</version>
    </dependency>
 
    <dependency>
      <groupId>org.apache.spark</groupId>
      <artifactId>spark-streaming_2.11</artifactId>
      <version>2.4.8</version>
      <scope>provided</scope>
    </dependency>

三、入门应用

1、数据源

test_spark.txt

复制代码
中国 河南
中国 浙江
河南 郑州
浙江 杭州
河南 洛阳
浙江 宁波
美国 纽约
纽约 华尔街
美国 吉利福尼亚
加利福尼亚 落砂机

2、编码实现

复制代码
import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}
 
object SparkWordCount {
  def main(args: Array[String]): Unit = {
    ///使用本地模式连接spark
    val conf = new SparkConf().setAppName("WordCount").setMaster("local")
    val sc = new SparkContext(conf)
    ///读取文件中每一行字符 存入到是数据集合RDD中
    val lines: RDD[String] = sc.textFile("D:/workplace/java-item/res/file/test_spark.txt")
    /// 将数据集合进行扁平化操作  以字符空格分割
    val tuples = lines.flatMap(_.split(" ")).groupBy(word => word).map({ case (w, l) => (w, l.size) }).collect()
    tuples.foreach(println)
  }
}
相关推荐
闪电悠米2 小时前
黑马点评-Redis 消息队列-03_stream_consumer_group
开发语言·数据库·redis·分布式·缓存·junit·lua
无忧智库4 小时前
某公共大数据资源中心平台建设项目可行性研究方案(PPT)
大数据
z落落5 小时前
C# 事件(Event)+自定义带参数事件例子
开发语言·分布式·c#
诗词在线5 小时前
求推荐飞花令
大数据·人工智能·python
湘美书院--湘美谈教育6 小时前
湘美谈教育AI系列经验集锦:赋能整理聊斋志异大寓言
大数据·人工智能·深度学习·神经网络·机器学习
jrjrgood6 小时前
现货黄金和黄金期货的区别有哪些?如何投资?
大数据·人工智能·区块链
我是一颗柠檬7 小时前
【Java项目技术亮点】分库分表+数据路由策略:单表5000万后的架构升级方案
java·开发语言·分布式·架构
清辞8537 小时前
Coze从入门到实战---第一、二章
大数据·人工智能·学习·语言模型
TomatoStudy7 小时前
IT职业教育AI落地与实训体系建设复盘——以职坐标模式为例
大数据·人工智能
半夜修仙8 小时前
RabbitMQ中如何保证消息的可靠性传输
java·分布式·中间件·rabbitmq·github·java-rabbitmq