当前位置: 首页 > news >正文

大数据开发学习Day11

一、Linux / Shell

日志文件 app.log 格式

2025-04-11 08:00:00,uid100,SUCCESS2025-04-11 08:01:00,uid101,FAIL2025-04-11 08:02:00,uid100,SUCCESS

1.筛选出 SUCCESS 的行
2.提取 UID(第 2 列,逗号分隔)
3.去重统计次数
4.按次数降序排列

grep"SUCCESS"app.log|cut-d','-f2|sort|uniq-c|sort-nr

grep “SUCCESS” app.log
作用:只保留包含SUCCESS的成功日志
用途:过滤失败 / 异常日志,只看目标数据

二、SQL

176. 第二高的薪水

SELECT(SELECT DISTINCT salary FROM Employee ORDER BY salary DESC LIMIT1OFFSET1)AS SecondHighestSalary;

LIMIT 1 OFFSET 1
跳过 1 条,取 1 条 = 第二条

178. 分数排名

SELECT score, DENSE_RANK()OVER(ORDER BY score DESC)AS'rank'FROM Scores ORDER BY score DESC;

DENSE_RANK() 连续并列排名
分数相同:名次相同
排名格式:1,1,2,3,3,4
RANK():跳跃排名 1,1,3,4
ROW_NUMBER():不并列 1,2,3,4

180. 连续出现的数字

SELECT DISTINCT l1.num AS ConsecutiveNums FROM Logs l1 JOIN Logs l2 ON l1.id=l2.id -1JOIN Logs l3 ON l1.id=l3.id -2WHERE l1.num=l2.num AND l2.num=l3.num;

三、PySpark

frompyspark.sqlimportSparkSessionfrompyspark.sqlimportfunctionsasF spark=SparkSession.builder \.master("local[*]")\.appName("day11")\.getOrCreate()data=[(1,"click",10),(1,"buy",20),(2,"click",15),(3,"view",5),]df=spark.createDataFrame(data,["uid","event","cost"])# 1. 分组多聚合df.groupBy("uid")\.agg(F.sum("cost").alias("total"),F.avg("cost").alias("avg"),F.count("*").alias("cnt")).show()# 2. 过滤 + 排序df.filter(F.col("cost")>10)\.orderBy(F.desc("cost"))\.show()# 3. 新增列df.withColumn("cost_double",F.col("cost")*2).show()spark.stop()

四、算法

合并两个有序链表

classListNode:def__init__(self,val=0,next=None):self.val=val self.next=nextdefmergeTwoLists(l1,l2):dummy=cur=ListNode()whilel1andl2:ifl1.val<l2.val:cur.next=l1 l1=l1.nextelse:cur.next=l2 l2=l2.nextcur=cur.nextcur.next=l1orl2returndummy.next

虚拟头节点 dummy
避免头节点判空,代码更简洁

双指针遍历
每次取较小节点接入结果

剩余链表直接拼接
一个链表走完后,另一个直接接上

复杂度
时间:O (m + n)
空间:O (1)(原地合并)

http://www.jsqmd.com/news/632235/

相关文章:

  • openclaw平替之nanobot源码解析(七):Gateway与多渠道集成慰
  • 【个人博客—山东大学项目实训——古诗词与文章智能创作助学平台(一)】
  • 安全智能:MongoDB EF Core 提供程序中的可查询加密和向量搜索倜
  • 【笔试真题】- 淘天-2026.04.11-工程岗
  • Xmake进阶指南---打造高效Qt开发工作流
  • 桌面端 Claw 个人微信接入指南铝
  • Qt——布局管理器(一)
  • 别再乱重启了!Proxmox集群故障时,先学会用这四条命令精准定位问题
  • DotNetPy:现代.NET 与 Python 互操作 实战指南谏
  • 全国GEO优化服务选择与行业分析指南
  • c++中的模板
  • 2026自吸磁力泵技术解析:防腐化工泵/防腐磁力泵/不锈钢化工泵/不锈钢磁力泵/安徽化工泵/安徽磁力泵/氟合金磁力泵/选择指南 - 优质品牌商家
  • TCP/IP协议详解:高性能服务器开发的底层基石寻
  • 新手入门音响控台培训调音台培训专业迈达斯培训怎么选
  • 单调队列优化多重背包 学习笔记 详解曝
  • 自动导引车(AGV)与自主移动机器人(AMR)控制系统的 C# 开源封装库诠
  • 非线性信号的时间尺度调整
  • 【大模型工程化监控黄金法则】:20年SRE专家亲授5类告警阈值设定铁律,避开97%的误报陷阱
  • 记录复现多模态大模型论文OPERA的一周工作()碳
  • MySQL锁机制:从全局锁到行级锁的深度解读赡
  • Gerrit代码Review高效协作指南:如何利用Topic和CI加速团队开发
  • AI时代,.NET开发者的生存危机还是能力外挂?馅
  • Java与PHP结合的优势第二篇章
  • 工业物联网实时分析的“秒级”革命:拆解DolphinDB如何攻克海量数据下的预警与决策难题腿
  • Z-Image-Turbo部署全攻略:从零开始,快速搭建个人AI绘画站
  • 探秘Cuk升降压电路:如何实现低纹波与高隔离的电源设计
  • 协程执行顺序与作用域解析
  • testserver.cc测试例子解读
  • 手把手教你解决PyTorch的nn、optim模块导入失败:从环境配置到文件命名的避坑全指南
  • 嵌入式无锁任务队列:裸机与RTOS下的零内存分配串行化方案