当前位置: 代码网 > it编程>编程语言>Java > Intellij IDEA安装配置Spark与运行

Intellij IDEA安装配置Spark与运行

2024年08月01日 Java 我要评论
在com.tipdm.sparkDemo包下新建WordCount类并指定类型为object,编写spark程序实现单词计数器。整个程序会读取指定路径下的文件,计算每个单词的出现次数,并打印结果。这是一个使用Spark进行基本文本分析的常见示例。在Scala中,对象可以包含方法和字段,并且可以作为程序的入口点。这两个类,它们都是Apache Spark的核心组件。在Scala的基础上((在Scala中,这相当于Java中的。对象,它是Spark应用程序的入口点。,它包含了要读取的文件的路径。

目录

scala配置教程

配置spark运行环境

编写spark程序

 1、包和导入

2、定义对象

3、主函数

4、创建spark配置和上下文

5、定义输入文件路径

6、单词计数逻辑

7、输出结果

8、完整代码:


scala配置教程

idea配置scala:教程

配置spark运行环境

添加spark开发依赖包(快捷键:ctrl+alt+shift+s)

找到spark安装目录下的jars文件夹,将整个文件夹导入 

spark编程环境配置完成 

在com.tipdm.sparkdemo包下新建wordcount类并指定类型为object,编写spark程序实现单词计数器。

  

 选择dependencies勾选scala-sdk-2.12.15和jars

 

 添加add content root root

 选择jars点击ok

编写spark程序

        在scala的基础上(教程

 1、包和导入

package com.tipdm.sparkdemo  
import org.apache.spark.{sparkconf, sparkcontext}

 这里定义了一个包(com.tipdm.sparkdemo),并导入了sparkconfsparkcontext这两个类,它们都是apache spark的核心组件。

2、定义对象

object wordcount {

 这里定义了一个单例对象wordcount。在scala中,对象可以包含方法和字段,并且可以作为程序的入口点。

3、主函数

def main(args: array[string]): unit = {

这是程序的入口点,main函数。它接收一个字符串数组作为参数(通常用于命令行参数),并返回unit(在scala中,这相当于java中的void)。

4、创建spark配置和上下文

val conf = new sparkconf().setappname("wordcount").setmaster("local")
val sc = new sparkcontext(conf)

 首先,创建一个sparkconf对象并设置应用程序的名称为"wordcount"。然后,使用这个配置创建一个sparkcontext对象,它是spark应用程序的入口点。

5、定义输入文件路径

val input = "c:\\users\\john\\desktop\\words.txt"

这里定义了一个字符串变量input,它包含了要读取的文件的路径。

6、单词计数逻辑

val count = sc.textfile(input).flatmap(x => x.split(" ")).map(  
  x => (x, 1)).reducebykey((x, y) => x + y)

* `sc.textfile(input)`:从指定的路径读取文件,并返回一个rdd(弹性分布式数据集),其中每个元素是文件中的一行。  
* `flatmap(x => x.split(" "))`:将每一行分割成单词,并扁平化结果。这意味着所有行的单词都会合并到一个单一的rdd中。  
* `map(x => (x, 1))`:为每个单词映射一个键值对,其中键是单词,值是1。这表示每个单词都出现了一次。  
* `reducebykey((x, y) => x + y)`:对于具有相同键的所有值,执行reduce操作。在这里,它简单地将所有1相加,从而计算每个单词的出现次数。

7、输出结果

count.foreach(x => println(x._1 + "," + x._2))

使用foreach操作遍历结果rdd,并打印每个单词及其出现次数。x._1是键(单词),x._2是值(出现次数)。

整个程序会读取指定路径下的文件,计算每个单词的出现次数,并打印结果。这是一个使用spark进行基本文本分析的常见示例。

 words.txt放在桌面了所以路径为

c:\users\john\desktop\words.txt

 words.txt文件内容为:

hello world our world
hello bigdata real bigdata
hello hadoop great hadoop
hadoopmapreduce

8、完整代码:

package com.tipdm.sparkdemo
import org.apache.spark.{sparkconf, sparkcontext}
object wordcount {
  def main(args: array[string]): unit = {
    val conf = new sparkconf().setappname("wordcount").setmaster("local")
    val sc = new sparkcontext(conf)
      val input = "c:\\users\\john\\desktop\\words.txt"
    // 计算各个单词出现次数
    val count = sc.textfile(input).flatmap(x => x.split(" ")).map(
      x => (x, 1)).reducebykey((x, y) => x + y)
    count.foreach(x => println(x._1 + "," + x._2))
  }
}

运行成功

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com