package mydemo

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

object MyWordContextDemo {
  def main(args: Array[String]): Unit = {
    // 创建一个 Config
    val conf = new SparkConf().setAppName("MyWordContext")

    // 创建 SparkContext 对象
    val sc = new SparkContext(conf)

    // 使用sc 对象执行相应的算子
    sc.textFile(args(0))                    // 从第一个参数获取文件路径并打开
      .flatMap(_.split(" "))              // 先 map 再压平
      .map((_, 1))                        // 将单词和 1 构成元组
      .reduceByKey(_ + _)                 // 根据Key 进行 Reduce,并将 value 累加
      .saveAsTextFile(args(1))            // 将结果输出到文件

    // 停止 SparkContext 对象
    sc.stop()

  }

}

==> 运行程序:

    ---> 首先将程序打包成 jar 包

    ---> 执行以下命令

spark-submit --master spark://bigdata0:7077 --class mydemo.MyWordContextDemo scalawordcontext.jar hdfs://192.168.10.210:9000:/output/scala/wordcontext.txt

    ---> 命令解释:

        ---- spark-submit                                    spark 命令

        ---- --master spark://bigdata0:7077

        ---- --class         指定类名

        ---- scalawordcontext.jar    将自己与的程序打成的jar 包

        ---- hdfs://192.168.10.210:9000/out/scala/wordcontext.txt        指定处理好的数据输出的文件