zoukankan      html  css  js  c++  java
  • scala_spark实践4

    SparkStreaming中foreachRDD

    SparkStreaming是流式实时处理数据,就是将数据流按照定义的时间进行分割(就是“批处理”)。每一个时间段内处理的都是一个RDD。而SparkStreaming中的foreachRDD方法就是在处理每一个时间段内的RDD数据。

    DStream中即使有foreachRDD算子也不会即使进行处理,只有foreach(func)函数func中存在了action算子才会执行运算,所以foreachRDD的函数中可以使用foreach和foreachPartition算子来触发action操作。

    Spark-core中的foreachPartition算子解析:

    foreachPartition是action算子,该算子源码中的注释是:Applies a function f to each partition of this RDD.(将函数f应用于此RDD的每个分区)

    foreachPartition是对每个partition中的iterator时行迭代的处理.通过用户传入的function(即函数f)对iterator进行内容的处理,源码中函数f传入的参数是一个迭代器,也就是说在foreachPartiton中函数处理的是分区迭代器,而非具体的数据。

    Spark-core中的foreach算子解析:

    与foreachPartition类似的是,foreach也是对每个partition中的iterator时行迭代处理,通过用户传入的function(即函数f)对iterator进行内容的处理。而不同的是,函数f中的参数传入的不再是一个迭代器,而是每次的foreach得到的一个rdd的kv实例,也就是具体的数据。



  • 相关阅读:
    Linux几个常用的目录结构
    Linux 安装composer
    Elasticsearch修改network后启动失败
    php7 闭包调用
    php 爬虫框架
    file_get_contents('php://input') 和POST的区别
    PHP指定日期转时间戳
    .Net 站点跨域问题及解决方法
    C# 多线程学习系列一
    Nginx学习系列四默认负载均衡轮询及Ip_hash等常用指令介绍
  • 原文地址:https://www.cnblogs.com/shaozhiqi/p/12172356.html
Copyright © 2011-2022 走看看