大数据开发学习Day24

一、Linux

查看当前服务器所有监听端口及对应进程
过滤日志中 ERROR 并输出前 10 行
后台运行脚本 task.sh,不占用终端

bash 复制代码
ss -tulnp
grep ERROR app.log | head -10
nohup sh task.sh &

ss -tulnp

查看 TCP/UDP 监听端口 + 对应进程 PID

排查端口占用、服务端口监听、防火墙调试必备
grep ... | head -10

过滤关键字并限制输出行数,避免日志刷屏
nohup 命令 &
nohup 脱离终端守护运行
& 放入后台

大数据脚本、定时任务常用部署方式

二、SQL

577. 员工奖金

sql 复制代码
SELECT
    e.name,
    b.bonus
FROM Employee e
LEFT JOIN Bonus b 
    ON e.empId = b.empId;

LEFT JOIN 左外连接
保留左表所有员工,匹配不到奖金自动为 NULL
业务场景
用户主表 + 业绩 / 奖金维度表关联,数仓最常用关联方式
不需要 IFNULL,题目要求无奖金直接返 null

608. 树节点

sql 复制代码
SELECT
    id,
    CASE
        WHEN p_id IS NULL THEN 'Root'
        WHEN id NOT IN (SELECT DISTINCT p_id FROM Tree WHERE p_id IS NOT NULL) THEN 'Leaf'
        ELSE 'Inner'
    END AS type
FROM Tree;

树形结构 SQL 判断模板
p_id IS NULL → 根节点
id 不出现在父节点列表 → 叶子节点
其余为中间节点
子查询筛选所有父节点 ID
面试常考:自关联树形层级判断

1141. 查询近 30 天活跃用户数

sql 复制代码
SELECT
    activity_date AS day,
    COUNT(DISTINCT user_id) AS active_users
FROM UserActivity
WHERE activity_date BETWEEN DATE_SUB('2019-07-27', INTERVAL 29 DAY)
                        AND '2019-07-27'
GROUP BY activity_date;

DATE_SUB 日期向前偏移
COUNT(DISTINCT user_id) 日活标准统计写法
固定时间区间过滤 + 按日期分组
完全对标大数据数仓 日活、留存、用户行为统计 真实业务

三、Pyspark

左外连接补空值
树形结构节点分类判断
日期范围过滤 + 每日去重用户统计

python 复制代码
from pyspark.sql import SparkSession
from pyspark.sql.functions import col, countDistinct, date_sub

spark = SparkSession.builder \
    .master("local[*]") \
    .appName("Day24") \
    .getOrCreate()

# 1. 左连接 员工奖金
emp = spark.createDataFrame([(1,"Alice"),(2,"Bob")], ["empId","name"])
bonus = spark.createDataFrame([(1,5000)], ["empId","bonus"])
emp.join(bonus, on="empId", how="left").show()

# 2. 日期过滤 + 日活统计(对应LC1141)
act = spark.createDataFrame([
    (101, "2019-07-20"),
    (102, "2019-07-20"),
    (101, "2019-07-25")
], ["user_id","activity_date"])

act.filter(
    col("activity_date").between(date_sub("2019-07-27", 29), "2019-07-27")
).groupBy("activity_date")
 .agg(countDistinct("user_id").alias("active_users"))
 .show()

spark.stop()

Spark how="left" 左外连接,和 MySQL LEFT JOIN 一致
countDistinct 计算日活
日期函数 date_sub 与 SQL 语法对齐
离线数仓日活指标标准开发模板

四、算法

141. 环形链表

python 复制代码
class ListNode:
    def __init__(self, val=0, next=None):
        self.val = val
        self.next = next

def hasCycle(head):
    slow = fast = head
    while fast and fast.next:
        slow = slow.next
        fast = fast.next.next
        if slow == fast:
            return True
    return False

快慢指针(龟兔赛跑)
有环则快慢指针一定会相遇

相关推荐
叼烟扛炮10 小时前
[LangChain] 学习笔记(07):大模型长出手脚——工具(Tools)定义与调用闭环
笔记·学习·langchain
叼烟扛炮14 小时前
[LangChain] 学习笔记(06):突破大模型限制——结构化输出(Structured Output)
windows·笔记·学习·langchain
且从容.16 小时前
VUE3学习笔记(根据黑马教程总结)
笔记·学习
小田学Python16 小时前
工具调用:让 Agent 从“说”到“做”
大数据·大模型·agent·ai工具·deepseek
蒸蒸yyyyzwd17 小时前
关于 AI 开发相关的一些面经。
笔记·学习
GrowingIO技术社区20 小时前
用户行为分析怎么做?从业务目标到改进验证的完整流程
大数据·数据挖掘·数据分析
坤坤子吖1 天前
Linux网络编程:TCP服务器的多进程与多线程实现
linux·服务器·开发语言·网络·c++·笔记·学习
瑞克-桑切斯1 天前
docker Harbor 单机部署手册
大数据·运维·elasticsearch·docker·容器
蒸蒸yyyyzwd1 天前
后端相关学习笔记。
笔记·学习
旖旎夜光1 天前
【C++ 基础入门】C++ 多态(上):虚函数、重写、override/final 与抽象类
开发语言·c++·笔记·学习