大数据入门核心技术
文章平均质量分 87
大数据入门核心技术是全网最具价值的付费专栏之一,里面有集合Hadoop、Hive、HBase、Spark、Flink等大数据必学的核心技术,活动价49.9元,7天后涨价,会慢慢恢复到原价99元,火热🔥订阅中;早买不会亏,已购买的对于涨价不影响,关健你能学到真正有用的知识,这才是本栏目的价值所在
余额抵扣
助学金抵扣
还需支付
¥49.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
Lansonli
CSDN大数据领域博客专家,InfoQ写作社区2022年度影响力作者、华为云社区2022年度十佳博主、华为云享专家、阿里云专家博主、腾讯云开发者社区2022年度最佳作者、腾云先锋(TDP)核心成员、51CTO专家博主,全网二十万多粉丝,知名互联网公司大数据高级开发工程师
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
大数据学习指南从入门到精通
利用框架的力量,看懂游戏规则,才是入行的前提大多数人不懂,不会,不做,才是你的机会,你得行动,不能畏首畏尾选择才是拉差距关键,风向,比你流的汗水重要一万倍,逆风划船要累死人的为什么选择学习大数据开发,不选择Java开发?借棋弈做比喻,智商高的不要选择五子琪,要选择围棋,它能长久地吸引你。不都是在棋盘上一颗黑子一颗白子地下吗?因为围棋更复杂,能够掌握如此复杂的技艺、产生稳定输出的棋手、让我们更佩服。选择学习大数据开发也如此,能让你的职业生涯走得更远,少走弯路。原创 2022-05-21 15:57:40 · 24686 阅读 · 184 评论
-
大数据Spark(七十八):Action行动算子saveAsTextFile、top(num)和takeOrdered(num)使用案例
本文介绍了Spark中三个常用Action行动算子的使用方法:1. saveAsTextFile用于将RDD数据保存为文本文件,每个分区保存为单独文件;2. top(num)对RDD元素进行降序排序并返回前num个元素;3. takeOrdered(num)对RDD元素进行升序排序并返回前num个元素。文章分别提供了Java和Scala两种语言的代码示例,演示了这些算子的具体实现方式。这些行动算子都能触发Spark作业执行,将结果返回到Driver端,适用于不同的数据处理场景。原创 2026-01-25 09:55:45 · 604 阅读 · 0 评论 -
大数据Spark(六十六):Transformation转换算子sample、sortBy和sortByKey
本文介绍了Spark中三种常用的Transformation转换算子:sample、sortBy和sortByKey。sample算子用于随机抽样,支持有放回和无放回抽样;sortBy可以对任意类型RDD按指定键排序;sortByKey专用于键值对RDD的键排序。文章详细说明了每个算子的函数签名、参数含义,并提供了Java和Scala的代码实现示例,包括数据抽样、按字符串长度排序和按键值降序排序等实际应用场景。这些算子在大数据处理中非常实用,能有效支持数据抽样预览和排序等操作需求。原创 2025-10-04 12:25:50 · 1806 阅读 · 2 评论 -
大数据Spark(七十三):Transformation转换算子glom和foldByKey使用案例
摘要:本文介绍了Spark中两个Transformation转换算子glom和foldByKey的使用案例。glom算子将每个分区的数据合并为数组,适用于数据量小且需要分区内统计的场景,文中展示了Java和Scala的代码实现。foldByKey算子则是对键值对RDD进行聚合操作,与reduceByKey类似但支持初始值设置,适用于分区内外聚合规则相同的场景,同样提供了Java和Scala示例。文章还通过实际运行结果展示了不同分区设置对foldByKey计算结果的影响。原创 2025-11-15 15:53:17 · 1377 阅读 · 0 评论 -
大数据Spark(七十二):Transformation转换算子repartition和coalesce使用案例
本文介绍了Spark中两种分区调整算子:repartition和coalesce。repartition可以进行分区增减,但总会触发shuffle操作,适合提高并行度;coalesce主要用于减少分区,默认不触发shuffle,效率更高。文章通过Java和Scala代码示例演示了两种操作的效果,特别指出repartition(numPartitions)等同于coalesce(numPartitions,true)。当coalesce设置的分区数大于原分区数且shuffle=false时,操作不会生效。原创 2025-11-08 10:09:03 · 1194 阅读 · 0 评论 -
Spark实时(六):Output Sinks案例演示
当我们对流式数据处理完成之后,可以将数据写出到Flie、Kafka、console控制台、memory内存,或者直接使用foreach做个性化处理。关于将数据结果写出到Kafka在StructuredStreaming与Kafka整合部分再详细描述。下面对File、memoery、foreach output Sink进行演示。Flie Sink就是数据结果实时写入到执行目录下的文件中,每次写出都会形成一个新的文件,文件格式可以是parquet、orc、json、csv格式。。原创 2024-07-27 16:21:40 · 1539 阅读 · 0 评论 -
大数据Spark(七十一):Transformation转换算子zipWithIndex、mapPartitions和mapPartitionsWithIndex使用案例
本文介绍了Spark中的三个重要转换算子:zipWithIndex、mapPartitions和mapPartitionsWithIndex的使用案例。zipWithIndex用于将RDD元素与其索引组成键值对;mapPartitions以分区为单位处理数据,适合批量操作如数据库连接;mapPartitionsWithIndex则在处理分区数据时能获取分区索引。文章分别展示了Java和Scala两种语言的实现代码,并通过示例演示了这些算子在实际应用中的场景和优势,如减少重复初始化开销等。运行结果显示这些算子原创 2025-11-01 20:09:18 · 1713 阅读 · 0 评论 -
大数据知识总结(七):Spark重要知识汇总
Spark Core(实现了 Spark 的基本功能,包含RDD、任务调度、内存管理、错误恢复、与存储系统交互等模块。数据结构:RDD)Spark SQL(可以使用 SQL操作数据。数据结构:Dataset/DataFrame = RDD + Schema)(用来操作数据流的 API。数据结构:DStream = Seq[RDD])(提供常见的机器学习(ML)功能的程序库。包括分类、回归、聚类、协同过滤等,还提供了模型评估、数据导入等额外的支持功能。数据结构:RDD或者DataFrame)原创 2024-07-31 13:16:03 · 9522 阅读 · 0 评论 -
大数据Spark(七十六):Action行动算子reduce和take、takeSample使用案例
本文介绍了Spark中三种常用的Action行动算子:reduce、take和takeSample的使用方法。reduce算子用于对RDD所有元素进行聚合运算,返回单一结果;take(n)返回RDD前n个元素组成的集合;takeSample可实现随机抽样,支持有放回/无放回抽样模式,并可指定随机种子。文章分别提供了Java和Scala两种语言的实现代码示例,展示了这些算子的具体应用场景。这些算子都能将结果返回到Driver端,适用于不同的数据处理需求。原创 2026-01-14 23:34:46 · 1227 阅读 · 0 评论 -
Spark实时(三):Structured Streaming入门案例
我们使用Structured Streaming来监控socket数据统计WordCount。原创 2024-07-24 00:10:31 · 1443 阅读 · 0 评论 -
大数据Spark(五十五):Spark框架及特点
与 MapReduce 每个任务都需要将中间结果写入磁盘不同,Spark 能够将作业中间数据缓存于内存中,得益于内存计算和优化的查询执行方式,Spark 在内存中的运算速度比 Hadoop 的 MapReduce 快 100 倍,在磁盘上的速度也快 10 倍。Spark 可以在单机、小型集群甚至上千节点的分布式环境中高效运行。,与 MapReduce 不同,Spark 可以将作业中间结果缓存于内存中,减少对磁盘的读写操作,因此在需要多次迭代计算的数据处理场景(如数据挖掘和机器学习)中表现出色。原创 2025-03-29 23:14:17 · 1660 阅读 · 0 评论 -
大数据Spark(六十九):Transformation转换算子intersection和subtract使用案例
取两个RDD数据集的差集,rdd1.subtract(rdd2):返回rdd1中有但rdd2中没有的元素。注意:生成RDD的分区数与subtract前面的RDD的分区数一致。注意:返回新的RDD分区数与父RDD分区多的一致。取两个RDD数据集的交集。原创 2025-10-17 22:48:19 · 1318 阅读 · 1 评论 -
大数据Spark(六十八):Transformation转换算子所有Join操作和union
本文介绍了Spark中常用的Join和Union转换算子。Join操作包括join、leftOuterJoin、rightOuterJoin和fullOuterJoin,用于基于键合并两个K-V格式的RDD,类似于数据库连接操作,结果RDD的分区数与父RDD中分区数较多的相同。Union操作用于合并两个类型相同的RDD,不会去重,结果RDD的分区数是两个RDD分区数的总和。文章提供了Java和Scala两种语言的实现代码示例,展示了各种操作的具体用法和输出结果。原创 2025-10-12 16:03:03 · 695 阅读 · 1 评论 -
大数据Spark(五十七):Spark运行架构与MapReduce区别
提供了更高级的编程接口,如 RDD(弹性分布式数据集)和 DataFrame,支持丰富的操作算子,使得开发者可以以更简洁的方式编写复杂的处理逻辑。:采用基于磁盘的处理方式,每个任务的中间结果需要写入磁盘,然后再读取进行下一步处理。:提供了相对低级的编程接口,主要包含 Map 和 Reduce 两个操作,开发者需要编写较多的代码来实现复杂的数据处理逻辑。Application运行前,为所有的Spark Job申请资源,所有Job执行完成后,统一释放资源。:主要用于批处理任务,不适合实时数据处理。原创 2025-04-05 14:51:47 · 2522 阅读 · 1 评论 -
大数据Spark(六十一):Spark基于Standalone提交任务流程
在Standalone-Client模式中,Driver进程在提交Application的客户端节点上启动,客户端可以查看任务的执行情况和结果。原因在于,当客户端提交大量Application时,所有Driver都在客户端启动,Driver与集群之间存在大量通信,可能导致客户端网络流量激增。:在Standalone-Cluster模式中,Driver进程在集群的某个Worker节点上启动,客户端无法直接查看任务的执行结果,需要通过集群的Web UI查看日志获取结果。原创 2025-06-04 23:00:06 · 2049 阅读 · 1 评论 -
大数据Spark(七十七):Action行动算子first、collect和collectAsMap使用案例
本文介绍了Spark中三种常用Action算子:first、collect和collectAsMap的使用方法。first算子用于获取RDD中的第一个元素,相当于take(1)操作;collect算子将RDD所有数据收集到Driver端返回数组;collectAsMap专门处理键值对RDD,将其转换为Map结构返回。文章分别提供了Java和Scala两种语言的实现代码示例,包括环境配置、算子调用和结果输出等完整流程,帮助开发者理解这些行动算子的具体应用场景和实现方式。原创 2026-01-18 23:33:18 · 866 阅读 · 0 评论 -
大数据Spark(六十四):Spark算子介绍
摘要:本文介绍了Apache Spark中的三类核心算子:Transformation(转换算子)重点讲解了常用的Transformation算子如map、flatMap、reduceByKey和groupBy,通过Java和Scala代码示例展示了groupBy的分组功能。文章还概述了Spark编程的基本流程:配置SparkConf、创建SparkContext、RDD转换处理及触发执行。这些算子通过惰性计算机制优化了分布式数据处理效率。原创 2025-09-30 23:17:56 · 1280 阅读 · 1 评论 -
大数据Spark(六十三):RDD-Resilient Distributed Dataset
本文介绍了Spark核心组件RDD(弹性分布式数据集)的五大特性及创建方式。RDD是不可变、可分区、并行计算的数据集合,具有五大特性:分区组成、分区计算函数、RDD间依赖关系、键值RDD分区器及最佳计算位置。RDD创建方式包括从集合创建(Java/Scala API)、从文件创建以及基于现有RDD转换。文章还强调RDD不存储数据,采用"计算移动,数据不移动"原则,并提供了具体代码示例说明如何创建RDD及设置分区数。原创 2025-09-08 22:32:20 · 1533 阅读 · 0 评论 -
大数据Spark(五十八):Spark Pi介绍
上图中,正方形边长为2,圆的半径为1,那么正方形面积为4,圆的面积为π。现在向正方形内随机“打点”,即随机生成(x,y)坐标,范围不超过正方向范围,最终记录在圆内打点的个数与正方形内打点的个数,两者比例为4/π,当“打点”个数非常大时,可以大约算出π的大小。原创 2025-05-03 23:09:18 · 5725 阅读 · 0 评论 -
大数据Spark(七十四):Transformation转换算子aggregateByKey和combineByKey使用案例
本文介绍了Spark中两个关键的转换算子aggregateByKey和combineByKey的使用方法。aggregateByKey允许分别定义分区内和分区间聚合规则,通过初始值zeroValue、分区内聚合函数seqOp和分区间合并函数combOp实现灵活聚合。combineByKey则通过createCombiner初始化每个键的第一个值,使用mergeValue合并分区内数据,mergeCombiners合并分区间结果。两种算子都支持map端预聚合,但combineByKey可以基于第一个值进行初始原创 2025-11-26 11:33:09 · 1364 阅读 · 0 评论 -
大数据Spark(六十二):Spark基于Yarn提交任务流程
本文介绍了Spark在Yarn模式下提交任务的两种方式:Yarn-Client和Yarn-Cluster模式。Yarn-Client模式中,Driver运行在客户端节点,适合测试环境;Yarn-Cluster模式中,Driver作为AM运行在集群内部,适合生产环境。文章详细说明了两种模式的提交命令和执行流程,并对比了它们的特点和使用场景。Yarn-Client模式便于查看任务结果但可能导致客户端负载过高,而Yarn-Cluster模式将Driver分散在集群中,需要通过Yarn WebUI查看结果原创 2025-07-07 22:55:56 · 2451 阅读 · 2 评论 -
大数据Spark(七十五):Action行动算子foreachpartition和count使用案例
摘要:本文介绍了Spark中的两个重要Action算子:foreachPartition和count。foreachPartition以分区为单位遍历数据,适用于批量操作场景(如数据库连接),相比foreach能显著提高效率。count则用于统计RDD中的元素总数。文章通过Java和Scala代码示例展示了两种算子的具体用法,并强调Action算子会触发实际计算(与Transformations的延迟执行不同),每个Action算子对应一个Spark job。这些算子对于大数据处理中的结果收集和持久化操作至原创 2025-12-13 17:01:19 · 1444 阅读 · 0 评论 -
大数据Spark(五十九):Standalone集群部署
Standalone集群是Spark自带的资源调度系统,无需依赖外部集群管理器。集群由主节点(Master)、工作节点(Worker)和客户端(Client)组成。Master负责资源管理和任务调度,Worker执行计算任务,Client提交任务。搭建Standalone集群的步骤包括:上传并解压Spark安装包,配置spark-env.sh和workers文件,将配置好的安装包发送到各节点,启动集群。启动后,可通过浏览器查看集群信息。测试集群时,可在客户端节点上提交任务,如SparkPi任务,以验证集群的原创 2025-05-20 20:53:59 · 2196 阅读 · 0 评论 -
大数据Spark(六十五):Transformation转换算子groupByKey和filter
本文介绍了Spark中的两个Transformation转换算子:groupByKey和filter。groupByKey用于对K-V格式的RDD按Key分组,返回(K, Iterable<V>),但对于聚合场景建议使用更高效的reduceByKey。文中提供了Java和Scala的代码示例,演示了如何通过groupByKey进行分组求和。filter算子则用于根据条件过滤数据,保留返回true的记录,示例展示了如何过滤长度大于5的字符串。两种算子都配有完整的代码实现,帮助读者理解具体应用方式。原创 2025-10-01 22:36:09 · 1032 阅读 · 1 评论 -
大数据Spark(五十六):Spark生态模块与运行模式
Spark Core 是 Spark 的核心模块,提供了基本的功能和 API,包括任务调度、内存管理、故障恢复等,它实现了弹性分布式数据集(RDD)的概念,支持对分布式数据集的并行操作,Spark其他模块都是基于 Spark Core 构建。在 Kubernetes 模式下,Spark 应用程序以容器的形式运行,Kubernetes 负责容器的调度和管理。MLlib 模块是 Spark 的机器学习库,提供了常用的机器学习算法和工具,如分类、回归、聚类、协同过滤等。下面分别介绍Spark各个模块功能。原创 2025-03-30 13:53:35 · 1655 阅读 · 0 评论 -
大数据Spark(六十):Spark On Yarn 配置
本文介绍了如何配置SparkOnYarn环境,主要包括:1)将Spark安装包解压到node5节点;2)配置spark-env.sh文件,指定Hadoop配置文件路径;3)关闭NodeManager虚拟内存检查。最后通过提交SparkPi任务测试配置是否成功,验证了Spark在Yarn上的正常运行。配置过程需要注意Hadoop集群环境准备及参数设置。原创 2025-05-25 22:49:48 · 1683 阅读 · 0 评论 -
Spark实时(四):Strctured Streaming简单应用
Continuous不再是周期性启动task的批量执行数,而是启动长期运行的task,而是不断一个一个数据进行处理,周期性的通过指定checkpoint来记录状态(如果不指定checkpoint目录,会将状态记录在Temp目录下),保证exactly-once语义,这样就可以实现低延迟。注意:以上代码执行时Spark中写出的表由Spark 参数”spark.sql.warehouse.dir”指定的路径临时维护数据,每次执行时,需要将该路径下的表数据清空。Unspecified(默认)原创 2024-07-24 11:31:46 · 1544 阅读 · 0 评论 -
大数据Spark(七十):Transformation转换算子cogroup和zip使用案例
本文介绍了Spark中两个重要的转换算子cogroup和zip的使用方法。cogroup作用于两个键值格式的RDD,将相同键的值合并为迭代器集合,返回格式为RDD(K,(Iterable,Iterable)),注意子RDD分区数与父RDD较多的保持一致。zip则将两个RDD中的元素按位置一一对应组合成键值对,要求两个RDD的每个分区元素个数必须相同。文章提供了Java和Scala两种语言的实现代码示例,展示了如何通过这两个算子对数据进行转换操作。原创 2025-10-24 23:49:37 · 553 阅读 · 0 评论 -
Spark实时(五):InputSource数据源案例演示
实时监控json格式数据时,创建的Schema 中的字段需要与Json中的属性保持一致,否则在映射成表时,Schema中含有但在Json中没有的属性的字段对应的数据会为null。以上代码编写完成之后,向监控的目录“./data”中不断写入含有以下内容的文件,可以看到控制台有对应的流数据输出,这里一定是原子性的将文件复制到对应目录下。以上代码启动之后,向监控的目录“./data”下原子写入含有以下内容的json文件,在控制台可以看到实时监控内容。原创 2024-07-25 23:49:05 · 2151 阅读 · 4 评论 -
大数据面试SQL(十四):向用户推荐好友喜欢的音乐
推荐其关注的用户喜欢的音乐名称,主要是考察表之间的关联,并考察行转列及去重相关操作。1、根据用户关注表和用户喜欢的音乐表进行关联,查询出每个用户关注用户喜欢的音乐ID。1、根据用户关注表和用户喜欢的音乐表进行关联,查询出每个用户喜欢的音乐ID。1、用户关注表t1_follow记录用户及其关注的人。2、用户喜欢的音乐t1_music_likes。2、再关联音乐名字表,关联出对应的音乐名称。2、关联音乐名字表,关联出对应的音乐名称。3、音乐名字表t1_music。推荐他关注的用户喜欢的音乐名称。原创 2024-08-17 00:00:00 · 1309 阅读 · 0 评论 -
大数据面试SQL(十三):经常去同一家网吧的用户中两人一定认识的组合数
1、首先计算可能认识的人,由于所有可能认识的条件必须发生在同一个网吧内,以bar_id进行自关联,然后id要求t1>t2来保证同一个用户和其他的用户只进行一次关联,限定上线时间或者下线时间在10分钟内。2、按照t1的user_id,t2的user_id 进行分组,统计可能认识的人(符合【规则一】条件的人)在同一网吧上网的次数。有某城市网吧上网记录表,包含字段:网吧,访客,上线时间,下线时间。请计算该城市中经常去同一家网吧的用户中两人一定认识的组合数。2、计算出可能认识的用户组中,出现的同个网吧的个数。原创 2024-08-16 08:33:14 · 1526 阅读 · 0 评论 -
大数据面试SQL(十二):查询每个用户的第一条和最后一条记录
这里需要第一条和最后一条,因为无法提前预知每个用户的行数,所以使用两次row_number进行开窗,排序方式根据时间进行正向排序和逆向排序,分别取出行号为1的数据。现有一张订单表 t3_order 有订单ID、用户ID、商品ID、购买商品数量、购买时间,请查询出每个用户的第一条记录和最后一条记录。使用row_number()根据用户进行分组,根据时间分别进行正向排序和逆向排序,增加两个行号,分别为asc_rn和desc_rn。条件判断为asc_rn=1取第一条,desc_rn=1 取最后一条。原创 2024-08-15 04:30:00 · 1105 阅读 · 0 评论 -
大数据面试SQL(十一):用户商品购买收藏行为特征加工
已知有购买记录表t2_order,包含自增id:id,用户ID:user_id,商品ID:goods_id,订单时间:order_time,商品类别:goods_type。2、两个表进行全外联,获得全量的数据行。原创 2024-08-14 07:00:00 · 1135 阅读 · 0 评论 -
大数据面试SQL(十):品牌营销活动天数
本题难点在解决交叉问题,但是题目给出的是开始日期和结束日期,我们根据开始和结束日期,使用生成函数,生成活动期间每天的记录,然后根据品牌分组,对日期进行去重即可。2、苹果第二行数据的营销结束日期和第三行的开始日期不连续,2024-09-07以及2024-09-08不统计到营销天数中。有营销活动记录表,记录了每个品牌每次营销活动的开始日期和营销活动的结束日期,现需要统计出每个品牌的总营销天数。1、苹果第一行数据的营销结束日期比第二行数据的营销开始日期要晚,这部分有重叠的日期的要去重计算。原创 2024-08-13 07:30:00 · 1162 阅读 · 0 评论 -
大数据面试SQL(九):求连续段的最后一个数及每个连续段的个数
根据diff进行判断,如果差值为1代表连续赋值为0,否则代表不连续赋值为1,然后使用sum()进行累积计算,获得分组依据字段。3、根据重新分组标签进行分组,使用聚合函数max(),count()计算出每组的最后一个数和每组的个数。1、本题还是对重新分组的考察,首先使用lag函数,计算与上一ID的差值,为1则代表连续,否则存在断点。有一张表t3_id记录了id,id不重复,但是会存在间断,求出连续段的最后一个数及每个连续段的个数。3、分组聚合,过滤count()大于1才是连续的数据得出结果。原创 2024-08-12 08:00:00 · 666 阅读 · 0 评论 -
大数据面试SQL(八):求连续段的起始位置和结束位置
根据diff进行判断,如果差值为1代表连续赋值为0,否则代表不连续赋值为1,然后使用sum()进行累积计算,获得分组依据字段。3、根据重新分组标签进行分组,使用聚合函数min(),max()计算出每组的起始位置和结束位置。有一张表t2_id记录了id,id不重复,但是会存在间断,求出连续段的起始位置和结束位置。1、本题对重新分组的考察,此类题目真的比较常见的。1、lag()函数进行开窗计算与上一行的差值。2、使用累积求和方式对数据进行重新分组。3、得出连续分区结果。原创 2024-08-11 07:45:00 · 1030 阅读 · 0 评论 -
大数据面试SQL(七):累加刚好超过各省GDP40%的地市名称
使用sum()开窗计算每个城市的gdp总额,以及使用sum()over(order by )计算累积占比。现有各省地级市的gdp数据,求从高到底累加刚好超过各省GDP40%的地市名称,临界地市也需要。由于要求包含临界值,直接求取十分不方便,所以我们改变策略,gdp从低到高累加求和,求取累加求和。1、考察的是聚合函数开窗、聚合函数开窗时使用order by 进行累积求和。2、要求包含临界地市,这里属于技巧的考察,这种使用补集的方式计算。使用各省市全量数据,计算出不在上述结果的数据,即目标结果。原创 2024-08-10 06:00:00 · 2312 阅读 · 0 评论 -
大数据面试SQL(六):共同使用ip用户检测问题
现有用户登录日志表,记录了每个用户登录的IP地址,请查询共同使用过3个及以上IP的用户对。1、将所有用户登录记录按照用户ID和登录IP去重。2、通过IP地址进行自关联,去重,剔除相同用户。4、查询共同使用过3个以上IP的用户对。3、根据用户组计算使用共同IP的个数。5、合并过滤去重用户,得到最终结果。原创 2024-08-09 06:30:00 · 667 阅读 · 0 评论 -
大数据面试SQL(五):查询最近一笔有效订单
3、使用row_number,原始订单记录表中的user_name、ord_id进行分组,按照有效订单表的时间排序,增加分组排序。2、原始的明细数据与新的有效订单表按照用户进行关联,有效订单表的订单时间大于等于原始订单表。现有订单表t5_order,包含订单ID,订单时间,下单用户,当前订单是否有效。请查询出每笔订单的上一笔有效订单,注意不是每笔订单都是有效的。1、先查询出有效订单,然后计算出每笔有效订单的上一单有效订单。我们可以看出,最终我们需要的就是rn=1 的记录。原创 2024-08-08 17:00:00 · 1304 阅读 · 0 评论 -
大数据面试SQL(四):股票波峰波谷
需要比较当天价格与前一天、后一天的价格进行比较,常规想法为进行关联,股票ID相等、日期为当天日期减1,为前一天价格,日期为当天价格加1,为后一天价格,然后进行计算;参数1为列名,参数2为往下第n行(可选,默认为1),参数3为默认值(当往下第n行为NULL时候,取默认值,如不指定,则为NULL)参数1为列名,参数2为往上第n行(可选,默认为1),参数3为默认值(当往上第n行为NULL时候,取默认值,如不指定,则为NULL)有如下数据,记录每天每只股票的收盘价格,请查出每只股票的波峰和波谷的日期和价格。原创 2024-08-08 08:00:00 · 1425 阅读 · 0 评论
分享