SPARK项目的实践与心得体会

一、spark统计每辆车上传的总数据量

1.读入数据

2.将string转成CanData

3. 将CanData类型的RDD转成键值对RDD,key是“车型_车架号”,value是1

4.分组:将相同车架号的数据合并在一起

5.获取10辆车并将结果输出到控制台

6.用filter算子将车型为E100的10辆车的每辆总数量输出到控制台

总结


  1. 了解普通RDD和键值对RDD的区别
  2. 理解filter、mapToPair、groupByKey转换算子的作用,并能应用到具体业务场景中
  3. 在此次任务中需要准备相应的json文件以及spark环境的搭建

提示:以下是本篇文章正文内容,下面案例可供参考

一、spark统计每辆车上传的总数据量

1.读入数据,数据的获取是必不可少的

代码如下(示例):

import com.google.gson.Gson;
import com.lzzy.mk2_2.CanData;
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 org.apache.spark.api.java.function.Function;
import org.apache.spark.api.java.function.PairFunction;
import scala.Tuple2;

import java.util.List;
 public static void main(String[] args) {
        SparkConf sparkConf = new SparkConf().setAppName("Module2Task3").setMaster("local");
        JavaSparkContext sc = new JavaSparkContext(sparkConf);

        // 读文件,得到RDD
        JavaRDD<String> srcRdd = sc.textFile("D:\\spark_demo\\2023-9-27\\car.json");

2.将string转成CanData

用于筛选出满足特定条件的元素,并返回一个新的RDD。

参数:Function<T, Boolean>,该接口是函数式接口,T是它的call方法的形参类型,和RDD的元素类型一致,Boolean是call方法的返回值类型

返回值:一个新的RDD对象。

// 将string转成CanData
        JavaRDD<CanData> canDataRdd = srcRdd.map(new Function<String, CanData>() {
            @Override
            public CanData call(String s) throws Exception {
                Gson gson = new Gson();
                CanData canData = gson.fromJson(s, CanData.class);
                return canData;
            }
        }
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值