Spark小實例——求文件中的最大值和最小值(IDEA實現)

Spark小實例——求文件中的最大值和最小值(IDEA實現)
1、所需軟件
IDEA開發工具
HDFS分佈式文件系統(可選項)
spark-2.1.1-bin-hadoop2.7(版本可自選)
2、所需文件(自定義數據即可)
比如:
Spark小實例——求文件中的最大值和最小值(IDEA實現)

3、準備IDEA的環境
首先創建項目
Spark小實例——求文件中的最大值和最小值(IDEA實現)
導入所需的JAR文件(spark-2.1.1-bin-hadoop2.7)

Spark小實例——求文件中的最大值和最小值(IDEA實現)
Spark小實例——求文件中的最大值和最小值(IDEA實現)
4、編寫Spark程序(創建scala文件)
代碼如下:

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

object MAXandMIN {
  def main(args: Array[String]): Unit = {
    val conf = new SparkConf().setAppName("MAX and MIN").setMaster("local")

    //生成sc對象
    val sc = new SparkContext(conf)

    //設置日誌輸出格式
    sc.setLogLevel("ERROR")

    //2爲設置2個分區
    val lines  = sc.textFile("hdfs://192.168.169.200:9000/2020/rdd/test/shuzi.txt",2)

    //過濾沒有內容的行
    val result = lines.filter(_.trim().length > 0)

      //遍歷每一個元素生成key,value的形式
      .map(line => ("key",line.trim.toInt))

      //把key相同的鍵值對的value構成value-list
      .groupByKey()
      .map(x => {
        var min = Integer.MAX_VALUE
        var max = Integer.MIN_VALUE
        for (num <- x._2) {
          if (num > max) {
            max = num
          }
          if (num < min) {
            min = num
          }
        }

        //封裝成元組
        (max,min)
      })

      //收集遍歷
      .collect.foreach(x => {

      //打印結果
      println("max:" + x._1)
      println("min:" + x._2)
    })
  }
}

Spark小實例——求文件中的最大值和最小值(IDEA實現)

結果爲:
Spark小實例——求文件中的最大值和最小值(IDEA實現)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章