大数据开发学习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

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

相关推荐
xuhaoyu_cpp_java10 小时前
项目学习(三)分页查询
java·经验分享·笔记·学习
皮皮学姐分享-ppx10 小时前
政府绿色采购数据库(2015-2024.3)
大数据·网络·数据库·人工智能·制造
小宋加油啊12 小时前
机械臂抓取物体 PVN3D算法调研学习
学习·算法·3d
Xzh042313 小时前
AI Agent 学习路线(Java 后端方向)
java·人工智能·学习
做cv的小昊13 小时前
计算机图形学:【Games101】学习笔记08——光线追踪(辐射度量学、渲染方程与全局光照、蒙特卡洛积分与路径追踪)
图像处理·笔记·学习·计算机视觉·游戏引擎·图形渲染·概率论
星恒随风13 小时前
C++ 类和对象入门(五):初始化列表、explicit 和 static 成员详解
开发语言·c++·笔记·学习·状态模式
无忧智库14 小时前
某公共大数据资源中心平台建设项目可行性研究方案(PPT)
大数据
sensen_kiss15 小时前
CPT304 SoftwareEngineeringII 软件工程 2 Pt.8 软件测试 (Software Testing)(上)
学习·软件工程
力学与人工智能15 小时前
PPT分享 | 洛桑联邦理工学院魏震:深度几何学习在工业设计优化中的应用
学习·优化·工业设计·深度几何学习·洛桑联邦理工学院
诗词在线15 小时前
求推荐飞花令
大数据·人工智能·python