目录

添加spark的相关依赖和打包插件

步骤1 打开pom.xmlà添加的以下依赖,点击右下角enable auto-import自动下载

步骤2 右击main下的Scala文件先创建一个package并命名为cn.itcast

步骤3 创建WordCount.scala文件用于词频统计  alt+回车:选择导入包

步骤3 创建WordCount.scala文件用于词频统计  alt+回车:选择导入包

注意:需要事先在D盘创建word文件夹下的words.txt里面内容如下:(最好不要用中文路径)

解决以上问题,运行结果如下

添加spark的相关依赖和打包插件

步骤1 打开pom.xmlà添加的以下依赖,点击右下角enable auto-import自动下载

  

    2.11.8

    2.7.1

    2.0.0

   

   

    org.scala-lang

    scala-library

    ${scala.version}

   

   

    org.apache.spark

    spark-core_2.11

    ${spark.version}

   

   

   

    org.apache.hadoop

    hadoop-client

    ${hadoop.version}

   

添加完依赖后选择自动载入

步骤2 右击main下的Scala文件先创建一个package并命名为cn.itcast

步骤3 创建WordCount.scala文件用于词频统计  alt+回车:选择导入包

问题:没有scala文件创建选项

解决方法:

 

添加完插件包后即可:

 

步骤3 创建WordCount.scala文件用于词频统计  alt+回车:选择导入包

注意:需要事先在D盘创建word文件夹下的words.txt里面内容如下:(最好不要用中文路径)

package cn.itcast

# 导入包

import org.apache.spark.rdd.RDD

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

object WordCount {

def main(args: Array[String]): Unit = {

//1.创建SparkConf对象,设置appName和Master地址

val sparkconf = new SparkConf().setAppName("WordCount").setMaster("local[2]")

//2.创建SparkContext对象,它是所有任务计算的源头,它会创建DAGScheduler和TaskScheduler

val sparkContext = new SparkContext(sparkconf)

//设置日志级别

//sparkContext.setLogLevel("WARN")

//3.读取数据文件,RDD可以简单的理解为是一个集合,集合中存放的元素是String类型

val data : RDD[String] = sparkContext.textFile("D:\\word\\words.txt")

//4.切分每一行,获取所有的单词

val words :RDD[String] = data.flatMap(_.split(" "))

//5.每个单词记为1,转换为(单词,1)

val wordAndOne :RDD[(String, Int)] = words.map(x =>(x,1))

//6.相同单词汇总,前一个下划线表示累加数据,后一个下划线表示新数据

val result: RDD[(String, Int)] = wordAndOne.reduceByKey(_+_)

//7.收集打印结果数据

val finalResult: Array[(String, Int)] = result.collect()

println(finalResult.toBuffer)

//8.关闭sparkContext对象

sparkContext.stop()

}

}

可以看到计算出的单词频数itcast(1)Hadoop(1)spark(1)hello(3)

可能碰到的问题:

如果遇到运行结果报错或者结果没出来,则是没放Scala-sdk-2.11.8

解决方法:

 

如果没有则需要手动添加:

解决以上问题,运行结果如下

可以看到计算出的单词频数itcast(1)Hadoop(1)spark(1)hello(3)

参考文章

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: