大数据
文章平均质量分 63
大数据开发和java编程基础
肥大毛
落魄谷中寒风吹,春秋蝉鸣少年归。
展开
-
SQL刷题---2021年11月每天新用户的次日留存率
3.以表a为主与表b进行连接,过滤条件为同一个用户在表b中的日期比表a中日期多一天,根据此结果计算留存率。1.首先算出每个新用户注册的日期,将其命名为表a。2.计算出每个用户登录的天数,将其命名为表b。原创 2024-04-16 18:33:25 · 597 阅读 · 1 评论 -
LeetCode刷题---销售分析III
首先找出在sales表中筛选出符合指定日期的prioduct_id,将其查询结果命名为t1。与product表进行关联得出最终结果。原创 2024-04-01 15:18:37 · 131 阅读 · 0 评论 -
LeetCode刷题---查询近30天活跃用户数
1.给出满足的条件,截止至2019-07-27的近30天。2.按照日期分组,统计活跃用户个数。原创 2024-03-27 16:48:47 · 254 阅读 · 0 评论 -
LeetCode刷题---游戏玩法分析 IV
2.将Expected表和原始表activity进行关联,求出首次登录后第二天又登录的player_id,将其创建为临时表,命名为result。3.将从Result表中查询出来的用户个数除以原表activity中用户的个数,结果保留两位小数。1.首先查询出每个用户首次登录的第二天,并将其创建为临时表,命名为Expected。原创 2024-03-27 16:04:03 · 368 阅读 · 0 评论 -
LeetCode刷题---即时食物配送 II
2.与原表连接,求出在用户首次订单表中即时订单的数量的总和。1.首先先求出每个用户首次订单表,将其命名为表t。3.求出每个用户首次订单的数量。4.计算得到最终结果。原创 2024-03-12 22:31:31 · 364 阅读 · 0 评论 -
LeetCode刷题---每月交易I
当state不等于approved时,将state赋值为NULL或0。对分组后的结果求解,使用IF函数进行过滤。1.在对日期截取时,使用了MySQL中的。首先按照日期和国家/地区进行分组。函数,将日期转换为指定格式的日期。2.该题配合MySQL中的。原创 2024-03-11 20:56:55 · 588 阅读 · 2 评论 -
LeetCode刷题---查询结果的质量和占比
对组内的rating的值使用IF函数进行判断,如果rating=3,则将其标识为0,通过次方法可以找出组内rating的值小于原创 2024-02-27 22:39:19 · 345 阅读 · 0 评论 -
LeetCode刷题---各赛事的用户注册率
3.最后将上一步求出的count数量除以第一步得出的count数量得出注册率,并按照题中要求对结果进行排序。2.按照contest_id进行分组,求出每个赛事有多少用户参赛。根据题意要求出每个赛事的注册率,首先就要确定有多少参赛用户。原创 2024-02-27 15:23:58 · 391 阅读 · 0 评论 -
LeetCode刷题---平均售价
首先对Prices表和UnitsSold表进行Left join操作,之后按照购买日期位于定价开始和结束日期之间的条件进行过滤。将price和units的乘积进行累加,将units的值进行累加,之后将两个累加的和相除得到最终结果。按照product_id进行分组,对组内进行计算。原创 2024-02-27 10:08:15 · 357 阅读 · 0 评论 -
LeetCode刷题---确认率
AVG(c.action=‘confirmed’)表示对action列进行求平均,如果action=‘confirmed’,则返回true,此时在AVG函数中,将其计数为1,如果为false,则将其计数为0.将Signups和Confirmations进行左连接,连接的条件为Signups.user_id=Confirmations.user_id。但是对于值为null的行,AVG在进行计算的时候,则会将其忽略,所以此时使用IFNULL函数将其null值改为0.原创 2024-02-26 23:38:43 · 341 阅读 · 0 评论 -
LeetCode刷题---至少有5名直接下属的经理
首先将原表(经理表manager)与自身(下属表emp)进行连接,连接条件为manager.id=emp.manager,之后按经理表中的id进行分组,统计每个经理的下属员工的个数,将统计的结果命名为表t1。从t1中取出count>=5的经理id,将查询的结果命名为表t2。找出Employee表中下属员工至少有5个的经理名称。原创 2024-02-22 17:39:57 · 338 阅读 · 0 评论 -
SparkStreaming---DStream
用户自定义数据源需要继承 Receiver,并实现 onStart、onStop 方法来自定义数据源采集。//最初启动的时候,调用该方法,读数据并将数据发送给 Sparkreceive()}.start()///读数据并将数据发送给 Spark//创建Socket//创建变量用于接收端口穿过来的数据//创建BufferedReader用于读取端口传来的数据//读取数据//当 receiver 没有关闭并且输入数据不为空while(!= null){//循环发送数据给 Spark。原创 2024-02-01 09:50:33 · 1047 阅读 · 0 评论 -
SparkStreaming---入门
流处理和批处理是两种不同的数据处理方式,它们在处理数据的方式和特点上有所不同。流处理(Stream Processing)是一种数据处理方式,它实时地处理数据流,即将源源不断的数据按照特定的规则进行实时处理。批处理(Batch Processing)是一种数据处理方式,它将一段时间内的数据收集起来,然后一次性地进行处理。原创 2024-01-31 15:59:02 · 1026 阅读 · 0 评论 -
SparkSql---用户自定义函数UDF&&UDAF
如:实现需求在用户name前加上"Name:"字符串,并打印在控制台。原创 2024-01-28 11:34:08 · 497 阅读 · 0 评论 -
SparkSql---RDD DataFrame DataSet
DataSet 是 Spark 1.6 中添加的一个新抽象,是 DataFrame的一个扩展。它提供了 RDD 的优势(强类型,使用强大的 lambda 函数的能力)以及 SparkSQL 优化执行引擎的优点。DataFrame 与 RDD 的主要区别在于,RDD只关心数据,而DataFrame中也包含数据描述信息(数据的元数据)。DataFrame 其实就是 DataSet 的一个特例 ,因为DataFrame中每行的类型都是Row。定义一个名为user的json文件,文件中的数据如下。原创 2024-01-24 09:50:01 · 1644 阅读 · 0 评论 -
Spark---累加器和广播变量
用户可以通过继承AccumulatorV2来自定义累加器。需求:自定义累加器实现WordCount案例。AccumulatorV2[IN,OUT]中:IN:输入数据的类型OUT:输出数据类型/*** 使用累加器完成WordCount案例*///建立与Spark框架的连接val wordCount = new SparkConf().setMaster("local").setAppName("WordCount") //配置文件。原创 2024-01-13 17:37:27 · 665 阅读 · 0 评论 -
Spark---RDD持久化
但是,在实际使用的时候,如果想重用数据,仍然建议调用persist 或 cache。但是并不是这两个方法被调用时立即缓存,而是触发后面的 action 算子时,该 RDD 将会被缓存在计算节点的内存中,并供后面重用。在Spark中,持久化是将RDD存储在内存中,以便在多次计算之间重复使用。可以看出将中间结果放入缓存中后,第二次使用中间结果的时候,将不会从头再执行一遍,而是直接从缓存中读取数据,,在reduceByKey使用完成之后,groupByKey想要再次使用的时候,原创 2024-01-12 16:29:35 · 889 阅读 · 0 评论 -
Spark---RDD依赖关系
如上述代码所示,words的形成依赖于lines,wordGroup依赖于words,wordToCount依赖于wordGroup。通过合理地设计RDD的转换和动作操作,可以避免不必要的Shuffle操作,提高计算效率。1.对DAG进行反向解析,遇到宽依赖(ShuffleDependency)就断开,遇到窄依赖就把当前的RDD加入到当前的阶段中。由于RDD中是不存储数据的,当计算发生错误的时候,很难重新计算丢失的数据分区。4.一个阶段中的最后一个RDD的分区个数就是Task的个数。原创 2024-01-11 11:01:43 · 1020 阅读 · 0 评论 -
Spark---RDD序列化
序列化是指将对象的状态信息转换为可以存储或传输的形式的过程。在序列化期间,对象将其当前状态写入到临时或持久性存储区。以后,可以通过从存储区中读取或反序列化对象的状态,重新创建该对象。原创 2024-01-10 15:24:42 · 514 阅读 · 0 评论 -
Spark---行动算子RDD
行动算子可以分为两类:数据运算类和数据存储类。数据运算类算子主要用于触发RDD计算,并得到计算结果返回给Spark程序或Shell界面,例如reduce()函数。数据存储类算子用于触发RDD计算后,将结果保存到外部存储系统中,如HDFS文件系统或数据库,例如saveAsObjectFile()函数。注意:aggregate在使用的时候与aggregateByKey的区别在于:aggregate设置的初始值不仅会与分区内的第一个元素相加,而且还会与分区间的第一个元素相加。原创 2024-01-10 14:38:49 · 1090 阅读 · 0 评论 -
Spark---RDD(Key-Value类型转换算子)
从shuffle的角度来看:为了避免占用过多的内存空间,reduceByKey和groupByKey在执行的过程中,都会执行shuffle操作,将数据打散写入到磁盘的临时文件中,而reduceByKey在进行shuffle前会对数据进行预聚合的操作,致使shuffle的效率得到的提升,因为减少了落盘的数据量。如reduceByKey在shuffle操作后将不同分区的数据传输在同一个分区中进行聚合。mergeCombiners: (C, C) => C): RDD[(K, C)] //分区间合并。原创 2024-01-09 11:44:23 · 2012 阅读 · 0 评论 -
Spark---RDD(双值类型转换算子)
【代码】Spark---RDD(双值类型)原创 2024-01-08 09:57:55 · 705 阅读 · 0 评论 -
Spark---RDD算子(单值类型转换算子)
RDD算子是用于对RDD进行转换(Transformation)或行动(Action)操作的方法或函数。转换算子用于从一个RDD生成一个新的RDD,但是原始RDD保持不变。常见的转换算子包括map、filter、flatMap等,它们通过对RDD的每个元素执行相应的操作来生成新的RDD。行动算子触发对RDD的实际计算,并返回计算结果或将结果写入外部存储系统。与转换算子不同,行动算子会导致Spark作业的执行。如collect方法。原创 2024-01-03 23:19:48 · 1417 阅读 · 0 评论 -
Spark---RDD介绍
RDD(Resilient Distributed Dataset)叫做弹性分布式数据集,是 Spark 中最基本的数据处理模型。代码中是一个抽象类,它代表一个弹性的、不可变、可分区、里面的元素可并行计算的集合。简单的来说,RDD在程序中就是一个包含数据和逻辑的抽象类。RDD是一个最小计算单元。原创 2024-01-03 21:24:18 · 1534 阅读 · 0 评论 -
Hive优化
*Fetch抓取优化即对hive中的某些情况的查询,可以不去走mapreduce计算。**也就是说,对于一些简单的查询任务,可以不用将查询任务提交的yarn上去跑。如下图,矢量化计算简单来说就是将每列数据看成一个列向量,之后进行向量的计算,此时只需要调用一个cpu的指令完成即可。通俗的来讲就是,在不影响最终结果的情况下,将where条件提前,减少后续数据的量。原创 2023-10-31 16:55:28 · 97 阅读 · 0 评论 -
Hive窗口函数回顾
Hive的窗口函数分为两种类型,一种是基于行的窗口函数,即将某个字段的多行限定为一个范围,对范围内的字段值进行计算,最后将形成的字段拼接在该表上。原创 2023-10-08 15:34:27 · 339 阅读 · 0 评论 -
Hive---DDL
因此通常使用这些工具将数据流式传输到现有分区中,但是这会使读者感到脏读(也就是说,他们将在开始查询后看到写入的数据),并将许多小文件留在目录中,这将给NameNode带来压力。换句话说,Hive完全管理表(元数据和数据)的生命周期,类似于RDBMS中的表。当您删除内部表时,它会删除数据以及表的元数据。如果不对表进行分区,那么在执行查询的时候,会对全表进行检索才能得出相应的结果,如果数据文件很多的话,则会大大降低查询效率,此时可以通过对表进行分区,避免查询时候全表扫描数据,极大的提升了查询效率。原创 2023-03-11 22:12:59 · 380 阅读 · 1 评论 -
Hive入门学习
Apach hive 是一款建立在Hadoop之上的开源数据仓库系统原创 2023-02-26 21:27:21 · 458 阅读 · 0 评论 -
数据仓库基础
数据仓库原创 2023-02-26 17:26:15 · 564 阅读 · 0 评论 -
Zookeeper---实现分布式锁
Zookeeper---实现分布式锁。原创 2023-02-24 18:32:05 · 107 阅读 · 0 评论 -
Zookeeper---实现服务器动态上下线
在zookeeper中创建子节点/servers用于存储服务器端结点信息流程:当启动服务器hadoop102时候,会在zookeeper中/servers下创建临时结点:/servers/hadoop102,当hadoop服务器下线时候,临时结点/servers/hadoop102的信息也会随之消失。原创 2023-02-23 22:47:20 · 264 阅读 · 0 评论 -
Zookeeper入门
Zookeeper是一个开源的分布式的,为分布式框架提供协调服务的Apache项目。原创 2023-02-22 17:13:46 · 955 阅读 · 0 评论 -
hadoop集群在进行wordcount运行时而成功时而错误
在yarn-site.xml中添加如下配置信息,然后重启yarn。1.多运行几遍代码。有可能会运行成功,几率问题。原创 2023-02-07 17:45:12 · 201 阅读 · 0 评论 -
hadoop集群进行计算得不到结果
使用hadoop集群hadoop102 hadoop103 hadoop104在统计hadoop-3.1.3/wcinput/word.txt中出现名字的次数时,在hdfs网页上未显示wcoutput计算结果。原创 2023-02-06 11:29:15 · 479 阅读 · 0 评论