SparkStreaming算子

SparkStreaming算子分为两类:transformation算子和outputOperator算子transformation算子:flatMap、count、mapToPair、map、countByValue、repartition、filter、join、union、Reduce、reduceByKey、updataStateByKey、Window、transformoutput...
摘要由CSDN通过智能技术生成
SparkStreaming算子分为两类:transformation算子和outputOperator算子

transformation算子:flatMap、count、mapToPair、map、countByValue、repartition、filter、join、union、Reduce、reduceByKey、updataStateByKey、Window、transform

outputOperator算子:print、foreachRDD、saveAsTextFile、saveAsHadoopFile、saveAsObjectFile

outputoperator类的算子
print:显示DStream结果
foreachRDD:可以遍历DStream中的RDD,对RDD使用RDD的算子去转换,一定要有RDD的action类算子触发RDD的transformation类算子执行
foreachRDD中除了RDD算子之内的代码在Executor中执行,其他在Driver端执行,可以在foreachRDD中动态改变广播变量的值,因为每隔batchInterval会执行foreachRDD中的代码一次
saveAsTextFile
saveAsHadoopFile
saveAsObjectFile

可以触发transformation类算子去执行,可以拿到SparkStreaming中的RDD进行处理
foreachRDD算子 注意:
1、foreachRDD是DStream中outputoperator类算子
2、foreachRDD可以遍历得到DStream中的RDD,可以在这个算子内对RDD使用RDD的Transformation类算子进行转换,但是一定要使用RDD的Action类算子触发执行
3、foreachRDD可以得到DStream中的RDD,在这个算子内,RDD算子外执行的代码是在Driver端执行的,RDD算子内的代码是在Driver端执行的
counts.foreachRDD(new VoidFunction<JavaPairRDD<String,Integer>>() {
private static final long serialVersionUID = 1L;
@Override
public void call(JavaPairRDD<String, Integer> arg0)
throws Exception {
System.out.println("*****************");
//转换为RDD,需要Action算子触发
JavaRDD<String> maprdd = arg0.map(new Function<Tuple2<String,Integer>, String>() {
private static final long serialVersionUID = 1L;
@Override
public String call(Tuple2<String, Integer> arg0)
throws Exception {
//这个里面在Executor端执行,外面在Driver端执行,包括上一层的call方法也是在Driver端执行
System.out.println("--------------");
return arg0._1+"---"+arg0._2;
}
});
maprdd.collect();
}
});


updateStateByKey算子
/**
* UpdateStateByKey的主要功能:
* 1、为Spark Streaming中每一个Key维护一份state状态,state类型可以是任意类型的, 可以是一个自定义的对象,那么更新函数也可以是自定义的。
  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值