1、统计文本中性别为“男”的用户数。2、统计每个省(或直辖市)用户数。

简介: 1、统计文本中性别为“男”的用户数。2、统计每个省(或直辖市)用户数。

/*1、统计文本中性别为“男”的用户数。

2、统计每个省(或直辖市)用户数。*/

package thisterm;
import java.util.ArrayList;
import java.util.List;
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 scala.Tuple2;
/*1、统计文本中性别为“男”的用户数。
2、统计每个省(或直辖市)用户数。*/
public class tongji {
  public static void main(String[] args) {
    SparkConf sparkConf = new SparkConf().setAppName("PeopleInfoCalculator").setMaster("local");
      JavaSparkContext sc = new JavaSparkContext(sparkConf);
      JavaRDD<String> rdd1 = sc.textFile
          ("file:///home/gyq/下载/spark-2.3.2-bin-hadoop2.7/data/test.txt");//*是所有文件内容
      List<String> list=new ArrayList<String>();
      list.add("北京市");
      list.add("天津市");
      list.add("上海市");
      list.add("重庆市");
      JavaRDD<String> manrdd=rdd1.filter(f->f.contains("男"));//男性
      long a = manrdd.count();
      System.err.println("男性为"+a);
      JavaPairRDD<String,Integer> prdd1=rdd1.mapToPair(f->{//中国辽宁省,1) (中国 广东省,1)有这种东西存在
        return new Tuple2<>(f.split(",")[6].trim().
            replaceAll("[\\pP+~$`^=|<>~`$^+=|<>¥×]" , "")
            .replaceAll("中国", "").trim().
            replaceAll("廣東省", "广东省").
            replaceAll("広東省", "广东省").
            replaceAll("廣西省", "广西省").
            replaceAll("辽省", "辽宁省").
            replaceAll("北京省", "北京市")
            ,1);});
      JavaPairRDD<String,Integer> prdd5=prdd1.filter(f->
      ((f._1.matches(".*省")||list.contains(f._1))&&!isNumeric(f._1));//
    //(94省,1)有这种东西存在
      JavaPairRDD<String,Integer> rdd2=prdd5.reduceByKey((x,y)->x+y);
      rdd2.foreach(f->System.err.println(f));
      sc.stop();
  }
   static boolean isNumeric(String str) {//判读是否含有数字
    for (int i = str.length(); --i >= 0;) {
    int chr = str.charAt(i);
    if (chr > 48 && chr < 57)
    return true;
  }
return false;
    }
}
————————————————
版权声明:本文为CSDN博主「西柚与蓝莓」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/m0_53291740/article/details/123458033

47.1.png

台湾是中国的省

目录
打赏
0
0
0
0
19
分享
相关文章
第4章-7 统计学生平均成绩与及格人数
该程序计算一组学生的平均成绩和及格人数。输入包含学生人数N和N个成绩,输出格式为&quot;average = 平均成绩&quot;和&quot;count = 及格人数&quot;。提供的代码首先读取学生数量,然后累加成绩并计数及格者。平均成绩保留一位小数。当学生人数为0时,平均成绩和及格人数分别输出0.0和0。
205 1
HyperLogLog——用户日活(dau)、月活(mau)统计
HyperLogLog——用户日活(dau)、月活(mau)统计
213 1
场景题:10亿QQ用户,如何统计在线人数?
在竞争激烈的就业市场中,面试不仅考察八股文、算法和项目经验,场景题也愈发重要。本文介绍Java面试中的“在线人数统计”问题:面对亿级用户,如何高效统计在线人数。传统数据库方案难以应对频繁的上线下线操作带来的IO压力,而使用Bitmap(位数组)或Redis的Bitmap命令则能有效解决这一问题。通过将每个用户的在线状态映射到位数组中,仅需119.2MB内存即可处理10亿用户,在线人数统计变得简单高效。
95 8
|
10月前
1038 统计同成绩学生 (20 分)
1038 统计同成绩学生 (20 分)
成绩统计
小蓝给学生们组织了一场考试,卷面总分为100分,每个学生的得分都是一个0到100的整数。如果得分至少是60分,则称为及格。
123 0
统计网站的在线人数
统计网站的在线人数
161 0
查询各年龄段人数
查询各年龄段人数
246 0
统计一座城市 (10万或100万人口)中男女人数,以及男性中消费额最高和最低的,女性中消费额最高和最低的
统计一座城市 (10万或100万人口)中男女人数,以及男性中消费额最高和最低的,女性中消费额最高和最低的
7-19 树种统计 (10 分)
7-19 树种统计 (10 分)
131 0
(C/C++)1038 统计同成绩学生 (20 分)
本题要求读入 N 名学生的成绩,将获得某一给定分数的学生人数输出。
228 0