在maven项目中的pom.xml配置文件中添加spark相应的组件
<!-- 会自动加载所有相关的库 -->
<dependencies>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-mllib_2.11</artifactId>
<version>2.0.1</version>
</dependency>
import org.apache.spark.{SparkConf,SparkContext}
object WordCount {
def main(args:Array[String]){
/*
* 第一步,创建spark的配置信息对象sparkconf,设置spark程序运行时的配置信息
* setAppName用来设置应用程序的名称,在程序运行的监控界面上可以看到该应用程序的名称
* setMaster,设置程序运行在本地还是运行在集群中,在本地可以使用local参数,或者local[k]参数
* 如果运行在集群中,以standalone模式运行呢,需要使用spark://HOST:PORT
* */
val conf = new SparkConf();
conf.setAppName("wordcount")
conf.setMaster("local[2]");
/* 第二步创建sc对象,sc是spark程序所有功能的唯一入口
* sc核心作用:初始化spark应用程序的所有的组件,包括DAGSchedule TaskSchedule ScheduleBackend
* 还会负责spark程序向master注册程序
* */
val sc = new SparkContext(conf);
/* 第三步,根据具体的数据来源等信息,通过sparkContext来创建rdd
* rdd的创建方式,外部来源,通过scala的集合然后产生rdd,通过rdd产生rdd
*
* */
val lines =sc.textFile("D:/test")
/*第四步 用一些函数来进行计算*/
val words = lines.flatMap(_.split(",")).flatMap(_.split(" ")).filter(word=>word!=" ")
val pairs = words.map(word=>(word,1))
val wordscount=pairs.reduceByKey(_+_)
val result=wordscount.collect()
result.foreach(println)
sc.stop()
}
}
我们的数据格式:
1,湖南有限公司1,1,走向 肉鸡 嗯嗯 哈哈
2,湖南有限公司2,1,走向 肉鸡 嗯嗯 哈哈
3,湖南有限公司3,1,走向 肉鸡 嗯嗯 哈哈
输出: