首页 > 其他分享 >sparkcore案例四:统计每个省份的用户访问量

sparkcore案例四:统计每个省份的用户访问量

时间:2022-08-27 12:23:33浏览次数:58  
标签:province String val sparkcore rdd 访问量 省份

  • 题目:
/**
 * 统计每个省份的用户访问量,最终要求将不同省份用户访问量存放到不同的分区中 分区存放规则如下
 * 省份是以包含  山    0
 * 如果省份包含  海    1
 * 其他省份           2
 */
  • 代码:
package sparkcorerddexample

import org.apache.spark.rdd.RDD
import org.apache.spark.{Partitioner, SparkConf, SparkContext}
/**
 * 统计每个省份的用户访问量,最终要求将不同省份用户访问量存放到不同的分区中 分区存放规则如下
 * 省份是以包含  山    0
 * 如果省份包含  海    1
 * 其他省份           2
 */
object A4ProvinceVisit {
  def main(args: Array[String]): Unit = {
    val sparkConf:SparkConf = new SparkConf().setAppName("demo02").setMaster("local[3]")
    val sc:SparkContext = new SparkContext(sparkConf)

    val value: RDD[String] = sc.textFile("hdfs://node1:9000/dc")
    val map = value.map((line: String) => {
      val array = line.split(" ")
      val province: String = array(array.length - 4)
      (province, 1L)
    })
    val rdd = map.reduceByKey(new ProvincePartitioner(), _ + _)
    println(rdd.getNumPartitions)
    rdd.saveAsTextFile("hdfs://node1:9000/province")
  }
}

class ProvincePartitioner extends Partitioner {
  override def numPartitions: Int = 3

  override def getPartition(key: Any): Int = {
    val province = key.toString
    if (province.contains("山")) {
      0
    } else if (province.contains("海")) {
      1
    } else {
      2
    }
  }
}

标签:province,String,val,sparkcore,rdd,访问量,省份
From: https://www.cnblogs.com/jsqup/p/16630309.html

相关文章

  • sparkcore案例三:获取每一种状态码对应的访问量
    题目描述:/***清洗完成的数据中包含一个用户的响应状态码,获取每一种状态码对应的访问量*1、读取清洗完成的数据成为RDD[String]*2、可以把上一步得到的RDD......
  • SparkCore系列(四)函数大全
    有了上面三篇的函数,平时开发应该问题不大了。这篇的主要目的是把所有的函数都过一遍,深入RDD的函数RDD函数大全数据准备        val sparkconf = new Spa......