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

大数据开发学习Day8

一、Linux / Shell任务批量删除当前目录下所有 .tmp 结尾的临时文件find.-name*.tmp|xargsrm-f# find . -name *.tmp 生成当前目录下所有.tmp文件的列表批量删除文件# 查找并删除所有.log文件find.-name*.log|xargsrm# 更安全的方式处理空格文件名find.-name*.log-print0|xargs-0rm批量复制文件# 复制文件到指定目录find.-name*.txt|xargs-I{}cp{}/target/dir/# 移动特定类型的文件ls*.jpg|xargs-I{}mv{}images/-I{}替换字符串xargs-I{}cp{}/dest/-nN 每次传递N个参数xargs-n1逐个处理-PN 并行处理N个进程xargs-P44进程并行-0以null分隔配合find -print0find...-print0|xargs-0-p交互模式执行前确认xargs-prmxargs把管道传来的多行文本转为命令行参数rm -f强制删除不提示大数据场景常用批量清理日志、临时表、小文件二、SQL百分比计算、累积求和、分组条件筛选1728. 每月活跃用户数 II日期 分组 去重将原始 Activity 表按 (user_id, 月份) 分组统计每个用户每月的不同活跃日期数WITHuser_daysAS(SELECTuser_id,DATE_FORMAT(activity_date,%Y-%m)ASmonth,COUNT(DISTINCTactivity_date)ASdaysFROMActivityGROUPBYuser_id,month)SELECTmonth,COUNT(DISTINCTuser_id)ASactive_usersFROMuser_daysWHEREdays2GROUPBYmonth;DATE_FORMAT(activity_date, ‘%Y-%m’)把日期如 2026-04-09格式化成 ‘2026-04’用于按月聚合1204. 最后一个能进入电梯的人累积和 上限判断WITHweight_sumAS(SELECTname,SUM(weight)OVER(ORDERBYturn)AStotalFROMQueue)SELECTnameFROMweight_sumWHEREtotal1000ORDERBYtotalDESCLIMIT1;SUM(weight) OVER (ORDER BY turn) 是窗口函数ORDER BY turn 确保按排队顺序累加550. 游戏玩法分析 IV次日留存率面试必考WITHfirst_loginAS(SELECTplayer_id,MIN(event_date)ASfirst_dateFROMActivityGROUPBYplayer_id)SELECTROUND(COUNT(DISTINCTa.player_id)/COUNT(DISTINCTf.player_id),2)ASfractionFROMfirst_login fLEFTJOINActivity aONf.player_ida.player_idANDa.event_dateDATE_ADD(f.first_date,1);CTE 找首登日期MIN(event_date) 定位每个玩家第一天登录次日判断DATE_ADD(日期, 1) 精准匹配第二天留存率公式次日登录人数 / 总玩家数去重计数必须用 COUNT(DISTINCT) 避免同一天多次登录干扰 ROUND保留 2位小数面试标准输出格式三、PySpark 核心新内容自定义函数 Pandas UDF 数据倾斜实战 分区优化在PySpark分布式计算中数据倾斜某些分区数据量过大是常见瓶颈会导致任务执行缓慢甚至失败。Pandas UDFUser Defined Function结合分区优化能高效缓解此问题它利用Spark的分布式架构将数据分块处理为pandas DataFrame在分区级别应用向量化操作减少JVM与Python的通信开销同时通过自定义分区策略确保负载均衡直接在 PyCharm 运行frompyspark.sqlimportSparkSessionfrompyspark.sqlimportfunctionsasFfrompyspark.sql.functionsimportpandas_udffrompyspark.sql.typesimportDoubleTypeimportpandasaspd sparkSparkSession.builder \.master(local[*])\.appName(day8)\.getOrCreate()# 构造数据data[(1,20.0),(2,30.0),(3,40.0),(4,50.0)]dfspark.createDataFrame(data,[id,score])# 新知识点1Pandas UDF性能远高于普通UDFpandas_udf(DoubleType())defnorm_score(s:pd.Series)-pd.Series:returns/100dfdf.withColumn(norm_score,norm_score(F.col(score)))df.show()# 新知识点2重分区 合并小文件 # 增加分区df_repartdf.repartition(4)# 合并分区df_coalescedf_repart.coalesce(1)# 新知识点3数据倾斜常用解法加盐聚合 df_saltdf.withColumn(salt,F.floor(F.rand()*3))df_salt.groupBy(id,salt).count().show()spark.stop()结果------------------|id|score|norm_score|------------------|1|20.0|0.2||2|30.0|0.3||3|40.0|0.4||4|50.0|0.5|------------------Pandas UDF 用法基于 Arrow 格式速度是普通 UDF 的 10~100 倍repartition 与 coalesce 区别repartition(n)全量重分区可增可减有 shufflecoalesce(n)只减不增无 shuffle用于合并小文件加盐 两阶段聚合解决数据倾斜随机前缀 两阶段聚合解决单分区爆量分区数对性能的影响小知识点生产环境禁止大量小文件必须用 coalesce 合并四、算法LeetCode 3. 无重复字符的最长子串掌握滑动窗口双指针写法理解用哈希集合 / 字典维护窗口时间复杂度 O (n)deflengthOfLongestSubstring(s:str)-int:char_map{}left0max_len0forright,cinenumerate(s):ifcinchar_mapandchar_map[c]left:leftchar_map[c]1char_map[c]right max_lenmax(max_len,right-left1)returnmax_len

相关文章:

大数据开发学习Day8

一、Linux / Shell 任务:批量删除当前目录下所有 .tmp 结尾的临时文件 find . -name "*.tmp" | xargs rm -f # find . -name "*.tmp" 生成当前目录下所有.tmp文件的列表批量删除文件 # 查找并删除所有.log文件 find . -name "*.log&quo…...

[Linux][虚拟串口]x一个特殊的字节露

简介 langchain专门用于构建LLM大语言模型,其中提供了大量的prompt模板,和组件,通过chain(链)的方式将流程连接起来,操作简单,开发便捷。 环境配置 安装langchain框架 pip install langchain langchain-community 其中…...

C/C++头文件防护:#pragma once原理与实践

1. #pragma once 的基本概念与作用在C/C项目开发中,头文件包含管理是个看似简单却暗藏玄机的问题。我第一次意识到它的重要性是在参与一个跨平台嵌入式项目时,某个模块因为头文件重复包含导致的结构体重定义错误,让整个团队排查了整整两天。而…...

阿联酋科技创新研究院:单模型实现多视觉任务统一解决突破

这项由阿联酋科技创新研究院(Technology Innovation Institute,TII)Falcon Vision团队主导的研究发表于2026年3月,论文编号为arXiv:2603.27365v1。有兴趣深入了解的读者可以通过该编号在相关学术平台查询完整论文内容。传统的计算…...

Apache APISIX 3.16.0 版本发布,亮点多多

Apache APISIX 3.16.0 版本正式发布,带来新功能、修复及体验优化。重大变更提升安全性,新功能涵盖速率限制、可观测性等多方面,还有多项缺陷修复。重大变更提升安全此次版本有两项重大变更。openid - connect 插件的 ssl_verify 默认值变为 t…...

LAYONTHEGROUND沦

一、什么是requests? requests 是一个用于发送HTTP请求的 Python 库。 它可以帮助你: 轻松发送GET、POST、PUT、DELETE等请求 处理Cookie、会话等复杂性 自动解压缩内容 处理国际化域名和URL 二、应用场景 requests 广泛应用于以下实际场景: …...

四座小水库的“智能体检”:广州创科大亚湾安全监测项目纪实

在惠州鱿鱼湾、龙尾山、格木洞、畲禾坑四座水库,如同镶嵌在群山之间的明珠,守护着下游的城镇与工业区。它们大多建于上世纪六七十年代,服役已超半个世纪。2023年冬,一场以“除险加固智慧监测”为核心的维修加固工程正式拉开帷幕。…...

OpenClaw语音控制方案:千问3.5-35B-A3B-FP8对接Whisper实现声控自动化

OpenClaw语音控制方案:千问3.5-35B-A3B-FP8对接Whisper实现声控自动化 1. 为什么需要语音控制自动化? 上周整理实验室数据时,我双手正忙着操作显微镜,突然需要查一份文献——那种"腾不出手却必须立刻操作电脑"的窘境&…...

面向太空应用的钙钛矿光伏:稳定性测试指南

随着全球商业航天产业的快速发展,低地球轨道(LEO)卫星星座(如 Starlink、千帆)正推动航天从“高可靠、小规模”向“低成本、大规模”转型。这一变化对能源系统提出了新的要求:更高比功率、更低成本以及更轻…...

Blynk物联网开发终极指南:如何5分钟内构建云端控制应用

Blynk物联网开发终极指南:如何5分钟内构建云端控制应用 【免费下载链接】blynk-library Blynk library for IoT boards. Works with Arduino, ESP32, ESP8266, Raspberry Pi, Particle, ARM Mbed, etc. 项目地址: https://gitcode.com/gh_mirrors/bl/blynk-librar…...

2026年程序员必备:高质量源码分享平台大盘点

在程序员的日常开发工作中,源码是极为重要的学习与开发资源。优质的源码不仅能助力我们快速掌握新技术,还能为项目开发提供宝贵的参考。2026年,众多源码分享平台不断涌现与更新,下面就为大家详细盘点一些高质量的源码分享平台&…...

告别试用期焦虑:JetBrains IDE重置工具全面指南

告别试用期焦虑:JetBrains IDE重置工具全面指南 【免费下载链接】ide-eval-resetter 项目地址: https://gitcode.com/gh_mirrors/id/ide-eval-resetter 还在为JetBrains IDE试用期结束而烦恼吗?当你正沉浸在代码创作的高峰期,突然弹出…...

Qt表格入门(优化篇)成

1. 前言 本文详细介绍如何使用 kylin v10 iso 文件构建出 docker image,docker 版本为 20.10.7。 2. 构建 yum 离线源 2.1. 挂载 ISO 文件 mount Kylin-Server-V10-GFB-Release-030-ARM64.iso /media 2.2. 添加离线 repo 文件 在/etc/yum.repos.d/下创建kylin-local…...

大模型工程师的黄金赛道:揭秘高薪岗位的核心技能与必备经验!

本文深入剖析了大模型领域内的五大核心岗位方向,包括基座模型训练、大模型微调、大模型开发、大模型推理部署以及多模态大模型。文章详细阐述了每个方向的工作内容、核心竞争力、所需经验及市场现状,并推荐了相关的开源教程。此外,还强调了在…...

实验二四叉树图像模糊项目教程

四叉树图像模糊项目教程 📖 项目简介 这是一个使用四叉树算法实现图像模糊处理的C++项目。程序实现了两种图像模糊方法: 高斯模糊:传统的图像平滑方法 四叉树平均模糊:基于四叉树分割的自适应模糊方法 两种方法可以对比使用,让你直观感受不同算法的效果差异。 🎯 核心…...

广州团建策划公司引进健球团建,以三方竞技激发团队协同创新!

广州市搏翱企业管理咨询股份有限公司近日成功举办健球主题团队建设活动,将这一独特的三方竞技运动引入企业培训领域。作为深耕团队发展多年的专业机构,搏翱广州团建策划公司持续探索创新体验形式,帮助企业构建更灵活高效的协同机制&#xff0…...

AI 时代:祛魅、适应与重新定义畔

指令替换 项目需求:将加法指令替换为减法 项目目录如下 /MyProject ├── CMakeLists.txt # CMake 配置文件 ├── build/ #构建目录 │ └── test.c #测试编译代码 └── mypass2.cpp # pass 项目代码 一,测试代码示例 test.c // test.c #includ…...

深度解码:华为IPD流程管理体系L1-L5最佳实践与数字化转型架构全景(PPT)

在当今高度竞争的商业环境中,企业的核心竞争力不再仅仅取决于单一的技术突破或资本优势,而是取决于其业务流程的成熟度与组织运作的系统性。华为作为全球领先的科技企业,其背后支撑庞大业务帝国高效运转的正是其历经多年打磨的IPD&#xff08…...

一文讲清,精益六西格玛咨询是什么意思?做精益六西格玛咨询对企业有什么用?

精益六西格玛咨询到底是什么?简单来说,精益六西格玛咨询是一种将精益生产的效率与六西格玛的质量管理相结合的系统化服务,旨在帮助企业消除浪费并减少变异。通过引入精益六西格玛咨询,企业能够利用数据驱动的方法解决复杂的管理难…...

LeetCode 3655. 区间乘法查询后的异或2 解题报告(Python)

LeetCode 3655. 区间乘法查询后的异或2 解题报告(Python) 前言 本题是 LeetCode 第 3655 号问题,属于一道结合了根号分治、差分思想与模运算的综合应用题。题目要求在一个数组上执行大量区间“跳跃式”乘法操作,并最终返回所有元素…...

第04章-开源鸿蒙的架构概览

第4章 开源鸿蒙的架构概览本章目标:从整体到局部,逐层剖析开源鸿蒙的系统架构,理解各层的职责与协作关系。4.1 整体架构 开源鸿蒙的系统架构采用分层设计,自上而下可以分为四层: ┌─────────────────…...

Claude Code 拥有 50 多个命令。大多数开发者只用到 5 个

说句扎心的话:Claude Code 拥有超过 50 个指令,但绝大多数开发者只会在那儿干巴巴地敲其中的 3 到 5 个。剩下的指令就那么冷冰冰地躺在 /help 文档里吃灰。它们原本能让你的生产力原地起飞 10 倍,前提是——你得知道它们的存在。然而&#x…...

炸裂!昔日神话Sora惨遭抛弃,AI泡沫真的要碎了吗?

当初奥特曼(Sam Altman)在 2024 年底放出 Sora 的时候,全网简直像开了锅一样。 那时候,谁要是敢说半个“不”字,分分钟被那群科技狂热分子喷成筛子。 大家看着那堆其实并不怎么真实、甚至透着股子“恐怖谷”味道的 20 …...

500行代码还原儿时经典 Python Pygame 制作带 AI 决策的飞行棋

1. 前言 飞行棋(Aeroplane Chess)是许多人童年的回忆。今天,我们将使用 Python 的 Pygame 库,从零开始构建一个完整的飞行棋游戏。 这不仅仅是一个简单的绘图程序,它包含了完整的游戏逻辑状态机、一维路径坐标映射&am…...

linux个人心得24 (mysql③,AI排版尝试)

一、MySQL 数据导入&#xff08;mysql 客户端&#xff09;表格操作场景核心命令关键说明基本导入方式 1&#xff08;重定向&#xff09;mysql -u [用户名] -p[密码] [目标数据库名] < [文件名.sql]最常用&#xff0c;直接执行.sql 文件&#xff0c;目标库需预先创建基本导入…...

重构教育评价体系:OCRAutoScore智能阅卷系统的技术革新与实践路径

重构教育评价体系&#xff1a;OCRAutoScore智能阅卷系统的技术革新与实践路径 【免费下载链接】OCRAutoScore OCR自动化阅卷项目 项目地址: https://gitcode.com/gh_mirrors/oc/OCRAutoScore 教育信息化浪潮下&#xff0c;传统人工阅卷模式正面临效率瓶颈与质量挑战。OC…...

《数论探微:进阶版》(Arithmetic Tales: Advanced Edition)暗

一、核心问题及解决方案&#xff08;按踩坑频率排序&#xff09; 问题 1&#xff1a;误删他人持有锁——最基础也最易犯的漏洞 成因&#xff1a;释放锁时未做身份校验&#xff0c;直接执行 DEL 命令删除键。典型场景&#xff1a;服务 A 持有锁后&#xff0c;业务逻辑耗时超过锁…...

进程通信与网络协议

一、进程间通信1、管道&#xff1a;管道是基于文件描述符的半双工的通信方式&#xff0c;数据单向流动&#xff0c;数据读取后会从管道中删除。A. 无名管道 ​ i. 仅存在于内核空间中&#xff0c;无文件系统入口 ​ i. 仅支持亲缘间进程通信 ​ i. 进程退出后管道会自动释放 ​…...

基础算法-高精度:高精度减法

P2142 高精度减法 题目链接&#xff1a;P2142 高精度减法 - 洛谷 高精度的题目解法和之前高精度加法的解法基本相同&#xff0c;所以就不再过多讲解原理了。 解法&#xff1a;模拟列竖式计算的过程。 ①先用字符串读入&#xff0c;然后拆分每一位&#xff0c;逆序放在数组…...

Leetcode普通数组-day5、6

Leetcode普通数组-day5/6记录自己刷力扣备战秋招的刷题笔记❤️ ​ ——wosz普通数组 普通数组没什么需要说的&#xff0c;其实最简单的办法就是遍历&#xff0c;因为普通数组它是连续的&#xff0c;因此不会涉及到很复杂的算法。 因为是遍历嘛&#xff0c;我们就可…...