十三、累加器 1,基本介绍 (1)Spark 累加器(Spark Accumulators)是一种在分布式计算环境下进行累积计算的特殊变量。在 Driver 程序中定义的变量,在 Executor 端的每个 Task 都会得到这个变量的一份新的副本,每个 task 更新这些副本的值后,传回 Driver 端进行 merge......
十一、HBase 的读取与写入 1,准备工作 (1)首先我们需要在项目的 pom.xml 文件中添加 HBase 相关依赖项。 (2)接着我们编写一段代码测试对 HBase 的数据读写操作(与 Spark 无关): import org.apache.hadoop.hbase.{HBaseConfiguration, TableName} ......
十二、文件的读取与保存 1,读取与保存文本文件 (1)使用 textFile 方法可以从本地文件系统或者分布式文件系统(HDFS)上读取文本文件,该方法返回一个 RDD 对象......
十、RDD 缓存(Cache) 1,缓存的使用 (1)缓存是指将 RDD 的计算结果存储在内存中,以便后续的重复使用。通过缓存 RDD,可以避免每次需要使用 RDD 时都重新计算,从而提高 Spark 应用程序的性能。 比如下面样例,我们分别实现了单词数量统计和单词分组这两个功能......
九、RDD 的血缘关系、依赖关系、阶段划分、任务划分 1,血缘关系 (1)RDD 只支持粗粒度转换,即在大量记录上执行的单个操作。当一个 RDD 通过一系列的转换操作生成新的 RDD 时,新的 RDD 会记录下它依赖的原始 RDD 以及转换操作的步骤,这样就形成了 RDD 之间的血缘关系......
八、序列化 1,转换操作为什么需要序列化? (1)Spark 是分布式执行引擎,其核心抽象是弹性分布式数据集 RDD,其代表了分布在不同节点的数据。Spark 的计算是在 executor 上分布式执行的,故用户开发的关于 RDD 的 map,flatMap,reduceByKey 等 transformation 操作......
十月头条:C# 越来越接近 Java C# 和 Java 之间的差距从未如此之小。目前,它们之间的差距仅为1.2%,如果保持这种趋势,C# 将在大约 2 个月的时间内超过 Java。目前在所有编程语言中,Java 的跌幅最大,为 -3.92%,而 C# 的涨幅最大......
七、行动算子 1,reduce (1)该函数用于聚集 RDD 中的所有元素,先聚合分区内数据,再聚合分区间数据。 1 def reduce(f: (T, T) => T): T (2)下面是一个 reduce 函数使用样例......
六、Key-Value 类型的转换算子 1,partitionBy (1)该函数将数据按照指定 Partitioner 重新进行分区。Spark 默认的分区器是 HashPartitioner,它根据键的哈希值将数据分配到不同的分区中。这样,具有相同键的数据将被分配到相同的分区中,从而便于后续基于键的操作,例如聚合、连接和排序等......
五、双 Value 类型的转换算子 1,intersection (1)该函数对源 RDD 和参数 RDD 求交集后返回一个新的 RDD。 1 def intersection(other: RDD[T]): RDD[T] (2)下面代码对两个 RDD 计算交集......