大数据开发学习Day39

一、Linux

1. 统计指定目录下目录总个数

bash 复制代码
ls -l /opt/bigdata/ | grep "^d" | wc -l

grep "^d" 只筛选文件夹类型

wc -l 统计行数即目录数量

用途:盘点业务目录、归档文件夹数量

2. HDFS 删除过期分区数据

bash 复制代码
hdfs dfs -rm -r /user/hive/ods/log/dt=2026-04*

通配符批量删除整月过期分区,释放集群存储

生产定期清理冷数据必备操作

删除前建议先 ls 核对路径,避免误删

3. 查看端口占用并终止进程

bash 复制代码
netstat -tulpn | grep 8080
kill -9 进程PID

查询指定端口被哪个程序占用

端口冲突、服务启动失败时排查使用

二、SQL

表结构

dwd_store_order门店订单:store_id,order_id,order_amount,pay_time

dwd_user_browse用户浏览:user_id,goods_id,browse_time,stay_sec

dwd_vip_info会员信息:user_id,vip_level,expire_time,recharge_money

1. 统计各门店日均订单与营收

sql 复制代码
SELECT
store_id,
COUNT(order_id)/COUNT(DISTINCT date(pay_time)) avg_order_num,
SUM(order_amount)/COUNT(DISTINCT date(pay_time)) avg_income
FROM dwd_store_order
GROUP BY store_id;

先统计门店总订单、总营收

除以营业天数得到日均指标

用于门店业绩评估、门店效益对比

2. 统计商品平均浏览时长与访问人次

sql 复制代码
SELECT
goods_id,
ROUND(AVG(stay_sec),1) avg_stay,
COUNT(DISTINCT user_id) visit_user
FROM dwd_user_browse
WHERE browse_time >= '2026-05-01'
GROUP BY goods_id;

平均停留时长判断商品吸引力

去重统计访客数,衡量商品热度

时间过滤缩小扫描范围,提升查询效率

3. 分级统计会员充值总额

sql 复制代码
SELECT
vip_level,
COUNT(user_id) vip_count,
SUM(recharge_money) total_recharge
FROM dwd_vip_info
WHERE expire_time > current_date
GROUP BY vip_level
ORDER BY total_recharge DESC;

只统计在有效期内会员

按会员等级分组统计人数与充值金额

排序直观看出高等级会员消费贡献

三、Pyspark

今日重点:Structured Streaming 水印处理乱序数据

  • 业务场景

    网络延迟导致数据流时间错乱,晚到数据无法正常统计,指标失真

  • 核心代码

python 复制代码
from pyspark.sql.functions import col,window

# 读取流数据
stream_df = spark.readStream.format("kafka").load()
data_df = stream_df.select(from_json(col("value").cast("string"),schema).alias("data")).select("data.*")

# 设置水印:允许10秒内晚到数据
water_df = data_df.withWatermark("event_time", "10 seconds")

# 5分钟滚动窗口统计
window_df = water_df.groupBy(window(col("event_time"),"5 minute"),col("event_type")).count()

逐点讲解

withWatermark(时间字段, 延迟时长) 定义容忍乱序范围

超出容忍时间的数据直接丢弃,避免无限堆积状态

窗口聚合结合水印,保证实时指标准确且释放内存

流处理统计 PV、UV、交易指标必备写法

  • 实战注意

    水印字段必须是窗口分组依赖的时间字段

    延迟时长根据业务网络波动合理设置

  • 配套调参

python 复制代码
# 优化流任务状态过期清理
spark.conf.set("spark.sql.streaming.stateTTL.cleanupDelay","30s")

四、算法

反转字符串

python 复制代码
def reverseString(s):
    left, right = 0, len(s)-1
    while left < right:
        s[left], s[right] = s[right], s[left]
        left += 1
        right -= 1

思路讲解

双指针头尾交换元素,原地反转不额外开辟空间

时间效率高,数据清洗字段翻转、日志倒序解析常用

无额外内存开销,大数据批量处理友好

相关推荐
数字新视界13 小时前
国产动环数据库在智能机房环境监控中的应用与优势分析
大数据·人工智能·数据中心·机房管理·模块化机房
古法老登瞎折腾14 小时前
大数据智能运维实战(九):让 AI 查日志——找到异常,也保留上下文
java·大数据·运维·人工智能·spring ai·mcp
keyipatience14 小时前
Git学习(2)撤销与分支操作全指南
大数据·elasticsearch·搜索引擎
Li_RuiQi14 小时前
DAgger方法演进_独立学习笔记
笔记·学习·计算机视觉
数字新视界14 小时前
模块化机房的设计与实施原理剖析
大数据·物联网·信息可视化·信息与通信·一体化机柜
用户36105886261215 小时前
Flink 注册Slot源码深度剖析:从TaskManager注册到Slot状态机的完整链路
大数据·flink
一线数智16 小时前
来腾讯云AI开放日 加入人类职业进化计划
大数据·人工智能·腾讯云
loulanyue_16 小时前
机器换人不是终点,混合智能体重塑制造范式:从自主四要素到组织扁平化破局——读周济李培根院士2026东湖论坛国际智能制造创新论坛演讲实录
大数据·人工智能·制造
西索斯coding16 小时前
Qwen3-Max 与 Qwen-Plus:60 个真实修复任务评测方案
大数据·网络·算法·ai
龙亘川16 小时前
适应人工智能发展、构建就业友好型发展方式
大数据·运维·人工智能·信息可视化·智慧城市