
spark
CHSN
这个作者很懒,什么都没留下…
展开
-
SparkSQL自定义UDF函数实现对日志文件的修改
日志文件数据格式:这里我们发现每条信息都有“”冒号的包裹,不利于我们分析,所以我们要对其进行简单的清洗去除冒号UDF函数是对数据进行一进一出的操作,所以自定义UDF函数来实现代码:object Test02 { def main(args: Array[String]): Unit = { // spark配置文件 val sparkConf: SparkConf = new SparkConf().setMaster("local[*]")原创 2022-04-10 21:25:05 · 338 阅读 · 0 评论 -
spark学习笔记2
RDD的持久化其实就是对RDD的数据进行缓存处理,为什么用到缓存?在RDD得到执行过程中不会保存数据,只会保存血缘关系(依赖关系),那么如果一个RDD被多个RDD依赖就会出现,一个依赖之后数据就没了,另一个还需根据血缘关系去找到最初数据重新走一遍这是非常效率低下的。所以引出了缓存来解决。1)RDD cache缓存RDD通过Cache 或者 Persist 方法将前面的计算结果缓存,默认情况下会把数据以缓存在 JVM的堆内存中。但是并不是这两个方法被调用时立即缓存,而是触发后面...原创 2022-04-09 21:48:15 · 427 阅读 · 0 评论 -
spark实现对相同字母组成的单词汇总
前篇使用过spark实现MapReduce实现对相同字母组成的单词汇总但是涉及到了groupByKey算子,存在shuffle过程,效率有提高空间,就考虑使用累加器这个分布式共享只写变量数据结构来避免shuffle进而提高效率代码如下object WordCollect1 { def main(args: Array[String]): Unit = { val sc = new SparkContext(new SparkConf().setMaster("loc.原创 2022-04-09 21:36:43 · 419 阅读 · 0 评论 -
spark案例:Top10 热门品类中每个品类的 Top10 活跃 Session 统计
接上一篇spark案例:Top10 热门品类分析:top10热门已获取,就可以通过品类ID和sessionID来汇总一种品类商品同一session的操作次数,再对品类分区排序思路想好直接上代码:// 获取到top10的品类ID val cid: List[String] = values.map(_.cid) // 过滤数据(只留下top10) val filterRDD: RDD[String] = rdd.filter(原创 2022-04-09 21:02:21 · 1551 阅读 · 0 评论 -
spark案例:Top10 热门品类
数据格式:数据文件中每行数据采用下划线分隔数据每一行数据表示用户的一次行为,这个行为只能是 4 种行为的一种如果搜索关键字为 null,表示数据不是搜索数据如果点击的品类 ID 和产品 ID 为-1,表示数据不是点击数据针对于下单行为,一次可以下单多个商品,所以品类 ID 和产品 ID 可以是多个,id 之 间采用逗号分隔,如果本次不是下单行为,则数据采用 null 表示支付行为和下单行为类似需求:按照每个品类的点击、下单、支付的量来统计热门品类(先按照点击数排名,靠前的就.原创 2022-04-09 20:31:37 · 2810 阅读 · 1 评论 -
MapReduce实现对相同字母组成的单词汇总
首先数据格式为:相同字母组成的单词汇总,根据MapReduce的特点,map端的输出会在shuffle阶段进行按key分区输出到reduce端,利用这个特性,我们可以分析试图使相同字母组成的单词拥有同一个key值,正好相同字母就是可以作为相同值、只需要我们进行字母排序,因为存在大小写字母我们可以统一大小写再对字母排序来实现相同key。map端输出数据格式:[ act , act ] [ act , cat ] [ act , CAT ]reduce端收到数据格式:[ act , (act,c原创 2022-04-09 12:25:13 · 1073 阅读 · 0 评论 -
spark学习笔记
从内存中创建RDD 分区:指定分区;默认分区:默认第一会去看你的sparkcontext上下文环境是否配置,没有就默认 分区数据分配:分区数转换为列表【0,1...】,数据分区核心源码:start = (i * length) / num;end = ((i + 1) * length) / num;数据分区范围为【start,end】length为数据(数组)长度,num为分区数 例:数据:【1,2,3,4】 ; 3分区【0,1,2】 0 = > start..原创 2022-04-08 11:38:08 · 275 阅读 · 0 评论 -
spark实现wordcount
创建spark上下文环境def main(args: Array[String]): Unit = { val sc = new SparkContext(new SparkConf().setMaster("local[*]").setAppName("wc")) val rdd: RDD[String] = sc.makeRDD(List( "spark hello", "hive", "hadoop hbase", "spark ha原创 2022-04-08 11:18:27 · 4126 阅读 · 0 评论