首页 > 编程语言 >第一个Spark程序

第一个Spark程序

时间:2024-08-11 22:24:23浏览次数:20  
标签:第一个 创建 程序 log4j apache org Spark spark appender

一、创建工程

1、创建方式一

创建Maven工程

添加Scala框架

创建Scala文件夹,并设置为源代码文件夹

创建包和对象

2、创建方式二

创建scala工程

添加maven框架

创建scala文件夹,并设置为源代码文件夹

创建包和对象

二、pom.xml添加依赖

    <dependencies>
        <dependency>
            <groupId>org.scala-lang</groupId>
            <artifactId>scala-library</artifactId>
            <version>2.11.8 </version>
        </dependency>
        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-core_2.11</artifactId>
            <version>2.4.3</version>
        </dependency>

        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-client</artifactId>
            <version>3.2.0</version>
        </dependency>
    </dependencies>

三、添加资源文件

在resources目录下创建log4j2.properties,内容如下:

log4j.rootLogger=INFO, stdout   
log4j.appender.stdout=org.apache.log4j.ConsoleAppender   
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout   
log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n   
log4j.appender.logfile=org.apache.log4j.FileAppender   
log4j.appender.logfile.File=target/spring.log   
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout   
log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n  

四、添加代码如下

package com.soft863

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

object WordCount {
  def main(args: Array[String]): Unit = {
    //setMaster:指定spark的运行模式,这里指定为本地运行
    //local[1]:指定线程数
    var conf = new SparkConf().setMaster("local[1]").setAppName("WC")
    //打包到linux服务器上执行,或者在windows上执行,需要Hadoop依赖
    //conf = new SparkConf().setMaster("spark://master:7077").setAppName("WC")
    //创建SparkContext,该对象是提交spark App的入口
    val sc = new SparkContext(conf)
    excute(sc,"D:\\word.txt","D:\\data\\output1")
  }

  def excute(sc: SparkContext, source: String, targetFolder: String): Unit = {
    sc.textFile(source)
      .flatMap(_.split(" "))
      .map((_, 1))
      .reduceByKey(_ + _)
      //指定结果的输出目录,目录不能存在
      .saveAsTextFile(targetFolder)
    sc.stop()
  }
}

五、运行程序,查看结果

标签:第一个,创建,程序,log4j,apache,org,Spark,spark,appender
From: https://blog.csdn.net/taogumo/article/details/140993394

相关文章

  • 微信小程序学习记录
    一、为什么要写这篇文章来公司已经1个半月了,虽然应聘的是嵌入式软件工程师,但是由于在实习期,公司也不太清楚具体给我一些什么任务,在完成第一项“bootloader错误注入”测试的任务之后,又给我增派了基于已有蓝牙小程序来进行修改的任务。没办法,学吧!!反正自己也有想要学习小程序开发的......
  • springboot+vue体检套餐定制系统的设计与实现【程序+论文+开题】-计算机毕业设计
    系统程序文件列表开题报告内容研究背景随着人们健康意识的不断提升,定期体检已成为现代人维护健康、预防疾病的重要手段。然而,市场上现有的体检套餐往往存在一刀切的问题,难以满足不同年龄、性别、职业及健康状况人群的个性化需求。此外,体检预约流程繁琐、体检结果解读困难等......
  • 基于django+vue线上音乐俱乐部系统设计与实现【开题报告+程序+论文】-计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容进度安排:时间主要工作预期阶段成果2024年1月搜集资料、撰写开题报告完成开题报告2024年2月系统设计完成系统设计2024年3月......
  • 基于flask+vue框架的选课系统设计与实现[开题+论文+程序]-计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着高等教育规模的不断扩大,学生人数激增,传统的手工选课方式已难以满足高校对选课管理的效率与准确性要求。学生选课过程中常出现信息不对......
  • 基于flask+vue框架的的校园二手交易网站[开题+论文+程序]-计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着高等教育的普及和校园生活的日益丰富,学生群体对于物品交换与二手交易的需求日益增长。传统的线下二手市场存在信息不对称、交易效率低......
  • 基于nodejs+vue紧急自救知识教学与交流平台[程序+论文+开题]-计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容研究背景随着自然灾害与突发事件的频发,提高公众的紧急自救能力已成为社会关注的焦点。在数字化时代,虽然信息获取渠道多样,但针对紧急自救知识的普及与教学质量参差不......
  • 基于nodejs+vue进口零食销售网站[程序+论文+开题]-计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码毕设程序文件开题报告内容研究背景随着互联网技术的飞速发展和全球贸易的日益紧密,跨境电商已成为连接消费者与世界各地优质商品的重要桥梁。近年来,进口零食以其独特的口味、新颖的包装和丰富的品......
  • 基于nodejs+vue酒店管理系统[程序+论文+开题]-计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容研究背景随着旅游业的蓬勃发展和消费者对于住宿体验要求的不断提升,酒店业面临着前所未有的挑战。传统的酒店管理模式在应对客户多样化需求、提升服务效率及优化资源......
  • Struts2基础1--创建一个Struts2 Web应用程序
    Struts2不仅仅是Struts1的升级版本,更是一个全新的Struts架构,是当前较为普及和成熟的基于MVC设计模式的Web应用程序框架,并在RIA(RichInternetApplications)Web应用程序开发中得到了广泛应用,成为最好的Web框架之一。本文将通过详细的步骤来说明如何下载获取相关资源、安装设置......
  • MBTI 性格测试小程序实战
    MBTI性格测试应用介绍参考项目:16Personalities(https://www.16personalities.com/ch)MBTI实现方案介绍核心组成:题目用户答案评分规则题目结构暂时使用JSON,便于理解,result代表题目对应的结果[{"title":"你通常更喜欢","options":[......