栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

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;

public class tongji {

	public static void main(String[] args) {
		SparkConf sparkConf = new SparkConf().setAppName("PeopleInfoCalculator").setMaster("local");
	    JavaSparkContext sc = new JavaSparkContext(sparkConf);
	    
	    JavaRDD rdd1 = sc.textFile
	    		("file:///home/gyq/下载/spark-2.3.2-bin-hadoop2.7/data/test.txt");//*是所有文件内容
	    List list=new ArrayList();
	    
	    list.add("北京市");
	    list.add("天津市");
	    list.add("上海市");
	    list.add("重庆市");
	    JavaRDD manrdd=rdd1.filter(f->f.contains("男"));//男性
	    long a = manrdd.count();
	    System.err.println("男性为"+a);
	    
	    JavaPairRDD prdd1=rdd1.mapToPair(f->{//中国辽宁省,1) (中国 广东省,1)有这种东西存在
	    	return new Tuple2<>(f.split(",")[6].trim().
		    		replaceAll("[\pP+~$`^=|<>~`$^+=|<>¥×]" , "")
		    		.replaceAll("中国", "").trim().
		    		replaceAll("廣東省", "广东省").
		    		replaceAll("広東省", "广东省").
		    		replaceAll("廣西省", "广西省").
		    		replaceAll("辽省", "辽宁省").
		    		replaceAll("北京省", "北京市")
		    		,1);});
	    JavaPairRDD prdd5=prdd1.filter(f->
	    
	    ((f._1.matches(".*省")||list.contains(f._1))&&!f._1.contains("台"))&&!isNumeric(f._1));//去掉台湾省
	  //(94省,1)有这种东西存在
	    JavaPairRDD 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;
		}
}

台湾是中国的省

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/761859.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号