随笔分类 -  大数据部分

摘要:1 redis的事务(pipeline)测试 Redis本身对数据进行操作,单条命令是原子性的,但事务不保证原子性,且没有回滚。事务中任何命令执行失败,其余的命令仍会被执行,将Redis的多个操作放到一起执行,要成功多成功,如果失败了,可以把整个操作放弃,可以实现类似事物的功能。redis事务包含三 阅读全文
posted @ 2020-02-29 17:17 一y样 阅读(460) 评论(0) 推荐(0)
摘要:1.两种方式管理偏移量并将偏移量写入redis (1)第一种:rdd的形式 一般是使用这种直连的方式,但其缺点是没法调用一些更加高级的api,如窗口操作。如果想更加精确的控制偏移量,就使用这种方式 代码如下 KafkaStreamingWordCountManageOffsetRddApi pack 阅读全文
posted @ 2020-02-11 23:12 一y样 阅读(481) 评论(0) 推荐(0)
摘要:1. Spark Streaming 1.1 简介(来源:spark官网介绍) Spark Streaming是Spark Core API的扩展,其是支持可伸缩、高吞吐量、容错的实时数据流处理。Spark Streaming的数据源可以为kafka,Flume,Kinesis或者是TCP sock 阅读全文
posted @ 2020-01-09 11:28 一y样 阅读(280) 评论(0) 推荐(0)
摘要:1. Redis Redis是目前一个非常优秀的key-value存储系统(内存的NoSQL数据库)。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set有序集合)和hash(哈希类型)。 1.1 阅读全文
posted @ 2020-01-07 20:56 一y样 阅读(197) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2020-01-04 20:25 一y样 阅读(117) 评论(0) 推荐(0)
摘要:1. 练习 数据: (1)需求1:统计有过连续3天以上销售的店铺有哪些,并且计算出连续三天以上的销售额 第一步:将每天的金额求和(同一天可能会有多个订单) SELECT sid,dt,SUM(money) day_money FROM v_orders GROUP BY sid,dt View Co 阅读全文
posted @ 2020-01-03 10:05 一y样 阅读(1222) 评论(0) 推荐(0)
摘要:1. null值处理,子串,拼接,类型转换 (1) 空字段赋值(null值处理) 当表中的某个字段为null时,比如奖金,当你要统计一个人的总工资时,字段为null的值就无法处理,这个时候就可以使用NVL函数 NVL:给值为NULL的数据赋值,它的格式是NVL( string1, replace_w 阅读全文
posted @ 2019-12-30 20:41 一y样 阅读(620) 评论(0) 推荐(0)
摘要:1. 分桶表以及分桶抽样查询 1.1 分桶表 对Hive(Inceptor)表分桶可以将表中记录按分桶键(某个字段对应的的值)的哈希值分散进多个文件中,这些小文件称为桶。 如要按照name属性分为3个桶,就是对name属性值的hash值对3取摸,按照取模结果对数据分桶。如取模结果为0的数据记录存放到 阅读全文
posted @ 2019-12-27 15:10 一y样 阅读(799) 评论(0) 推荐(0)
摘要:1. hive的简介(具体见文档) Hive是分析处理结构化数据的工具 本质:将hive sql转化成MapReduce程序或者spark程序 Hive处理的数据一般存储在HDFS上,其分析数据底层的实现是MapReduce/spark,执行程序运行在Yarn上 其大致可以按如下图理解(具体可见HI 阅读全文
posted @ 2019-12-23 23:15 一y样 阅读(451) 评论(0) 推荐(0)
摘要:1. 读取数据库的形式创建DataFrame DataFrameFromJDBC object DataFrameFromJDBC { def main(args: Array[String]): Unit = { // 创建SparkSession实例 val spark: SparkSessio 阅读全文
posted @ 2019-12-19 15:06 一y样 阅读(449) 评论(0) 推荐(0)
摘要:1. sortBy是Transformation算子,为什么会触发Action sortBy需要对数据进行全局排序,其需要用到RangePartitioner,而在创建RangePartitioner时需要大概知道有多少数据,以及数据的范围(采样),其内部获取这个范围(rangeBounds)是通过 阅读全文
posted @ 2019-12-15 17:33 一y样 阅读(625) 评论(0) 推荐(0)
摘要:1. Spark执行流程 知识补充:RDD的依赖关系 RDD的依赖关系分为两类:窄依赖(Narrow Dependency)和宽依赖(Shuffle Dependency) (1)窄依赖 窄依赖指的是父RDD中的一个分区最多只会被子RDD中的一个分区使用,意味着父RDD的一个分区内的数据是不能被分割 阅读全文
posted @ 2019-12-11 11:37 一y样 阅读(493) 评论(0) 推荐(0)
摘要:1. 学科最受欢迎老师解法补充 day21中该案例的解法四还有一个问题,就是当各个老师受欢迎度是一样的时候,其排序规则就处理不了,以下是对其优化的解法 实现方式五 FavoriteTeacher5 package com._51doit.spark04 import org.apache.spark 阅读全文
posted @ 2019-12-09 23:47 一y样 阅读(308) 评论(0) 推荐(0)
摘要:1. 广播变量 1.1 补充知识(来源:https://blog.csdn.net/huashetianzu/article/details/7821674) 之所以存在reduce side join,是因为在map阶段不能获取所有需要的join字段,即:同一个key对应的字段可能位于不同map中 阅读全文
posted @ 2019-12-07 11:26 一y样 阅读(382) 评论(0) 推荐(0)
摘要:1 RDD编程实战案例一 数据样例 字段说明: 其中cid中1代表手机,2代表家具,3代表服装 1.1 计算订单分类成交金额 需求:在给定的订单数据,根据订单的分类ID进行聚合,然后管理订单分类名称,统计出某一天商品各个分类的成交金额,并保存至Mysql中 (1)法一,将json数据解析出来,直接使 阅读全文
posted @ 2019-12-04 11:28 一y样 阅读(660) 评论(0) 推荐(0)
摘要:0. 零碎概念 (1) 这个有点疑惑,有可能是错误的。 (2) 此处就算地址写错了也不会报错,因为此操作只是读取数据的操作(元数据),表示从此地址读取数据但并没有进行读取数据的操作 (3)分区(有时间看HaDoopRDD这个方法的源码,用来计算分区数量的) 物理切片:实际将数据切分开,即以前的将数据 阅读全文
posted @ 2019-12-01 11:35 一y样 阅读(506) 评论(0) 推荐(0)
摘要:0.前言 0.1 分布式运算框架的核心思想(此处以MR运行在yarn上为例) 提交job时,resourcemanager(图中写成了master)会根据数据的量以及工作的复杂度,解析工作量,从而产生任务(有多少个MapTask以及多少个ReduceTask),然后根据各个nodemanage节点资 阅读全文
posted @ 2019-11-28 10:38 一y样 阅读(318) 评论(0) 推荐(0)
摘要:1.Akka RPC通信案例改造和部署在多台机器上 1.1 Akka RPC通信案例的改造(主要是把一些参数不写是) Master package com._51doit.akka.rpc import akka.actor.{Actor, ActorRef, ActorSystem, Props} 阅读全文
posted @ 2019-11-26 16:54 一y样 阅读(242) 评论(0) 推荐(0)
摘要:1. 模式匹配和样例类 Scala有一个十分强大的模式匹配机制,可以应用到很多场合:如switch语句、类型检查等。并且Scala还提供了样例类,对模式匹配进行了优化,可以快速进行匹配 1.1 模式匹配 1.1.1 匹配字符串 object CaseDemo1 extends App { // 继承 阅读全文
posted @ 2019-11-24 12:07 一y样 阅读(239) 评论(0) 推荐(0)
摘要:1. 函数 函数就是一个非常灵活的运算逻辑,可以灵活的将函数传入方法中,前提是方法中接收的是类型一致的函数类型 函数式编程的好处:想要做什么就调用相应的方法(fliter、map、groupBy、sortBy),想要具体怎么做,就传入相应的函数 函数式编程的特点之一就是支持链式编程(不停的函数调用函 阅读全文
posted @ 2019-11-22 00:04 一y样 阅读(240) 评论(0) 推荐(0)