05 使用spark进行词频统计【scala sbt】

我们已经了解了在spark命令行当中使用交互方式完成词频统计,本节将阐述在idea当中使用sbt环境完成scala代码,并进行词频统计。

1 系统、软件以及前提约束

  • CentOS 7 64 工作站 作者的机子ip是192.168.100.200,主机名为danji,请读者根据自己实际情况设置
  • 已在linux中完成scala交互方式的词频统计
    https://www.jianshu.com/p/92257e814e59
  • 已经有待统计的文件word上传到HDFS,名字为/word
  • 已经idea中完成scala的第一个测试程序
    https://www.jianshu.com/p/ec64c70e6bb6
  • idea 2018.2
  • 为去除权限对操作的影响,所有操作都以root进行

2 操作

  • 1 在idea中创建sbt项目
    选中File->New->Project->Scala->sbt->Next
    创建一个sbt项目
    需要等待一段时间。
  • 2 配置依赖包:
    在build.sbt中加入以下内容:
libraryDependencies += "org.apache.spark" %% "spark-core" % "2.1.0"
  • 3 在src/main/scala中创建一个WordCount.scala的类,内容如下
import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}
 
object ScalaWordCount {
  def main(args: Array[String]): Unit = {
   //在windows下执行,必须设置本地的hadoop安装路径,倘若打成jar包,上传到linux,则不需要设置
    System.setProperty("hadoop.home.dir", "C:\\hadoop2.7.2")
    val conf: SparkConf = new SparkConf().setAppName("WordCount").setMaster("local[2]")
    // 创建SparkContext
    val sc: SparkContext = new SparkContext(conf)
    sc.textFile("hdfs://192.168.100.200:9000/word")
      .flatMap(_.split(" "))
      .map((_,1))
      .reduceByKey(_+_)
      .saveAsTextFile("hdfs://192.168.100.200:9000/outputscala")

    // 释放资源
    sc.stop()
  }
}
  • 4 执行,查看HDFS服务当中的outputscala即可看到执行结果。
    以上,就是我们在spark当中使用scala进行词频统计的过程。

猜你喜欢

转载自www.cnblogs.com/alichengxuyuan/p/12576807.html
sbt