随笔分类 -  Spark

摘要:在做统计计算的时候,根据条件将不同数据分组存放,可以方便后续取数、分析。 Flink中有分流算子,可以将这一批处理后的数据,分成不同的流数据,Spark虽然没有这种算子,但是有类似的操作。 根据key值,将数据写到不同目录下 import org.apache.hadoop.mapred.lib.M 阅读全文
posted @ 2025-06-27 15:52 MrSponge 阅读(15) 评论(0) 推荐(0)
摘要:python不仅在获取外部传参跟Scala、Java有区别,还在提交Spark任务上也有区别。 python不像Java、Scala项目那样,可以通过Maven将项目的一些资源(jar、resource...)打成一个jar包提交到集群上,它不能打包(暂时不知道怎么打包),每次都是通过spark-s 阅读全文
posted @ 2025-05-14 16:06 MrSponge 阅读(31) 评论(0) 推荐(0)
摘要:前言:由于Spark的闭包检查,Driver端的数据无法获取到Executor端的计算数据。 因此需要特殊类型——累加器(ACC) 目录累加器实现原理调用系统累加器注意事项自定义累加器广播变量 累加器实现原理 累加器用来把Executor端变量信息聚合到Driver端。再Driver程序中定义的变量 阅读全文
posted @ 2025-04-10 23:42 MrSponge 阅读(91) 评论(0) 推荐(0)
摘要:查看源码发现 aggregateByKey 的返回值与传入的zeroVlue类型是一样的 package com.pzb.rdd.operator.transform import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf 阅读全文
posted @ 2025-04-10 23:38 MrSponge 阅读(37) 评论(0) 推荐(0)
摘要:Spark批处理小文件合并 /** * * @param sparkSession * @param absDir 要进行小文件合并的路径 * @param partitionSize 分块的大小(一般 128 ,即 128M ) * @param isDeleteBak 是否删除备份路径数据,1: 阅读全文
posted @ 2024-07-23 15:47 MrSponge 阅读(332) 评论(0) 推荐(0)
摘要:Spark算子是分为行动子算子和转换算子的,只有遇到行动算子,计算任务才会生成一个Job任务,当算子行动算子多起来,并且交织复杂的时候,Spark去追溯数据血缘就会比较耗时了,通常我们都会直接通过persist算子存储中间的计算结果,减少数据的重复计算。 // 存储中间计算结果,避免Spark重复计 阅读全文
posted @ 2024-07-17 10:59 MrSponge 阅读(273) 评论(0) 推荐(0)
摘要:最近Spark任务调度任务跑的时间比平时慢很多,查看SparkUI发现有大量的Task被异常终止,查看日志发现了有几个问题,记录一下。 根据日志,主要涉及任务被终止、YARN集群中的抢占问题以及网络连接错误。 1、任务被终止的警告: WARN Lost task 87.0 in stage 6.0 阅读全文
posted @ 2024-01-09 11:22 MrSponge 阅读(813) 评论(0) 推荐(0)
摘要:背景 从ScalaSpark代码转PySpark代码,同时实现连续读多个文件,避免因某些路径不存在导致程序终止。 在Scala的Spark中可以直接导下面两个模块的包 import org.apache.hadoop.conf.Configuration import org.apache.hado 阅读全文
posted @ 2023-11-07 15:52 MrSponge 阅读(515) 评论(0) 推荐(0)
摘要:众所周知,RDD只会保留血缘关系,不存储计算结果。如果想要让计算结果持久化存储,那就要引入cache和persist方法。 提前感受变化 禁用持久化 package com.pzb.rdd.persist import org.apache.spark.rdd.RDD import org.apac 阅读全文
posted @ 2023-04-20 14:01 MrSponge 阅读(39) 评论(0) 推荐(0)
摘要:介绍 val fileRDD: RDD[String] = sc.textFile("input/1.txt") println(fileRDD.toDebugString) println(" ") val wordRDD: RDD[String] = fileRDD.flatMap(_.spli 阅读全文
posted @ 2023-04-20 13:55 MrSponge 阅读(92) 评论(0) 推荐(0)
摘要:Spark的算子分为两大类:transform(转换算子)和action(行动算子) transform算子:map、mapPartitions、mapPartitionsWithIndex、flatMap、glom、groupBy、filter、sample、distinct、coalesce、r 阅读全文
posted @ 2023-04-20 13:45 MrSponge 阅读(495) 评论(2) 推荐(0)
摘要:SparkCore 是整个Spark 框架的核心,其他都是在此基础上扩展API 第一步,打开IDEA,新建Maven项目 第二步,增加 Scala 插件(前提:一配置好scala环境) 注意版本,Spark3.0 版本最好用 Scala2.12 版本(文本末尾有scala 环境安装包) 第三步,添加 阅读全文
posted @ 2023-01-29 10:30 MrSponge 阅读(87) 评论(0) 推荐(0)