大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
上一篇博文已经介绍了搭建scala的开发环境,现在进入正题。如何开发我们的第一个spark程序。
专注于为中小企业提供成都做网站、网站建设、外贸营销网站建设服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业保亭黎族免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了数千家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。
下载spark安装包,下载地址http://spark.apache.org/downloads.html(因为开发环境需要引用spark的jar包)
我下载的是spark-2.1.0-bin-hadoop2.6.tgz,因为我的scalaIDE版本是scala-SDK-4.5.0-vfinal-2.11-win32.win32.x86_64.zip
最好,IDE版本和spark版本要匹配,否则,开发程序的时候,可能会包引用的jar包错误等等。
new 一个 scala project,然后new 一个 scala object
代码如下:
package com.test import org.apache.spark.SparkContext import org.apache.spark.SparkConf /** * 统计字符出现次数 */ object WordCount { def main(args: Array[String]) { if (args.length < 1) { System.err.println("Usage:") System.exit(1) } val conf = new SparkConf();//创建SparkConf对象 conf.setAppName("Wow,My First Spark Programe");//设置应用程序的名称,在程序运行的监 conf.setMaster("local")//此时,程序在本地运行,不需要安装Spark集群 val sc = new SparkContext(conf);//创建SparkContext对象,通过传入SparkConf实例 // val lines = sc.textFile(args(0)); val lines = sc.textFile(args(0)); val words = lines.flatMap{line => line.split(" ")};//对每一行的字符串进行单词拆 val pairs = words.map{word => (word,1)}; val wordCounts = pairs.reduceByKey(_+_);//对相同的Key,进行Value的累计(包括Local和Reducer级别同时Reduce) // val wordCounts = pairs.reduce((x,y)=>(x.)); wordCounts.foreach(wordNumberPair => println(wordNumberPair._1 + " : " +wordNumberPair)); // line.flatMap(_.split(" ")).map((_, 1)).reduceByKey(_+_).collect().foreach(println) sc.stop() } }
3.配置JDK1.8 和引入spark jar包
spark的jar包是 spark安装包解压之后jars目录里面的jar包,可以把这个目录下面的所有jar包都引入工程
4.run Configurations,配置运行入参,
因为 这个代码是读入一个文本,在hadoop文件系统,可以spark-submit的时候传入这个参数,在windows 本地开发环境可以在eclipse里面配置这个参数,见下面的图
val lines = sc.textFile(args(0));
4.入参文本及运行结果
入参文本:
run scala Application运行结果
ok,开发环境搭建完毕。