Spark03: 单词统计

文章展示了如何使用Scala和Java编写ApacheSpark的WordCount程序,包括数据加载、单词拆分、聚合统计等步骤,并通过Maven进行项目打包,使用shell脚本提交Spark作业。

1. Scala代码

在scala目录下创建包com.sanqian.scala
再创建一个Scala object:WordCountScala

package com.sanqian.scala

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

object WorldCountScala {
  def main(args: Array[String]): Unit = {
    //第一步创建SparkContext
    val conf = new SparkConf()
    conf.setAppName("WorldCountScala")
//      .setMaster("local")

    val sc = new SparkContext(conf)

    //第二步:加载数据
    var path = "D:\\data\\wordcount.txt"
    if (args.length== 1){
      path = args(0)
    }
    val linesRDD = sc.textFile(path)

    // 第三步:对数据进行切割,把一行数据切分成一个一个的单词
    val wordsRDD = linesRDD.flatMap(_.split(" "))

    // 第四步: 迭代words,将每个word转化为(word, 1)这种形式
    val pairsRDD = wordsRDD.map((_, 1))

    //第五步:根据key(其实就是word)进行分组聚合统计
    val wordCountRDD = pairsRDD.reduceByKey(_ + _)

    //第六步: 将结果打印到控制台
    wordCountRDD.foreach(wordCount => println(wordCount._1 + "---" + wordCount._2))

    //第七步:停止SparkContext
    sc.stop()
  }
}

2. Java代码

在scala目录下创建包com.sanqian.java
再创建一个Java类:WordCountJava

package com.sanqian.java;

import org.apache.spark.SparkConf;
import org.apache.spark.api.java.JavaPairRDD;
import org.apache.spark.api.java.JavaRDD;
import org.apache.spark.api.java.JavaSparkContext;
import org.apache.spark.api.java.function.FlatMapFunction;
import org.apache.spark.api.java.function.Function2;
import org.apache.spark.api.java.function.PairFunction;
import org.apache.spark.api.java.function.VoidFunction;
import scala.Tuple2;

import java.util.Arrays;
imp
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值