Spark基础案例

总结了四个基础的spark案例,可以对使用 Scala 编写 Spark 应用程序处理大数据有较为深入的了解。

(一)词频统计

案例描述

提起 Word Count(词频数统计),相信大家都不陌生,就是统计一个或者多个文件中单词出现的次数。

案例分析

将文件转换成RDD,然后用flatMap将单词以空格符分开,然后用map将单个单词转换成key-value对,最后使用reduceByKey将相同单词累加。

编程实现

spark源码

import org.apache.spark.SparkConf
import org.apache.spark.SparkContext
/**
  * Created by sys on 2016/11/22.
  */
object SparkWordCount {
   
  def FILE_NAME:String = "word_count_results_";

  def main(args: Array[String]){
    if (args.length < 1){
      println("Usage:SparkWordCount File name");
      System.exit(1);
    }
    val conf = new SparkConf().setAppName("Spark Exercise: Spark Version Word Count Program");
    val sc = new SparkContext(conf);
    val textFile = sc.textFile(args(0));
    val wordCounts = textFile.flatMap(line => line.split(" ")).map(
                    word => (word,1)).reduceByKey((a,b)=> a+b)
    wordCounts.collect().foreach(e => {
    val (k,v) = e
    println(k+"="+v)
    });
    wordCounts.saveAsTextFile(FILE_NAME+System.currentTimeMillis());
    println("Word Count program running results are successfully saved.");
  }
}

随便找一篇英文文章上传到HDFS,然后将spark程序提交到集群上执行

[root@Master bin]# ./spark-submit --class SparkWordCount --executor-memory 512M /home/spark-exercise/spark-exercise.jar  hdfs://master.hadoop:9000/usr/word_count/test.txt

执行结果
这里写图片描述

(二)统计平均年龄

案例描述

我们将假设我们需要统计一个 1000 万人口的所有人的平均年龄。假设这些年龄信息都存储在一个文件里,并且该文件的格式如下,第一列是 ID,第二列是年龄。
这里写图片描述

我们需要用 Scala 写一个生成 1000 万人口年龄数据的文件,源程序如下:

package CreatData

import java.io.{File, FileWriter}

import scala.util.Random

/**
  * Created by sys on 2016/11/22.
  */
object averageAge {
   
  def main(args: Array[String]): Unit 
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值