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

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

相关推荐
在下_诸葛5 小时前
langgraph学习笔记
笔记·python·学习·langgraph教程
charlie1145141915 小时前
现代Qt开发教程(新手篇)1.10——进程
开发语言·c++·qt·学习
绿豆人5 小时前
Cache缓存项目学习2
学习·缓存
NOCSAH5 小时前
统好AI:用AI技术为传统ERP系统注入新活力
大数据·人工智能
山楂树の5 小时前
H.265 (HEVC) 视频解码转逐帧图像 完整实现方案
学习·音视频·h.265
智慧化智能化数字化方案5 小时前
智能制造——解读IBM装备制造业大数据驱动的企业架构优化与智能化转型规划方案【附全文阅读】
大数据·架构·制造·装备制造业全寿命周期质量管理·装备制造业智能工厂·装备制造集团scm·sap大型装备制造集团erp
hsD5mSMu55 小时前
从零开始学Flink:Flink SQL 极简入门
大数据·sql·flink
星幻元宇VR5 小时前
VR观景台推动安全科普走向沉浸体验
科技·学习·安全·vr·虚拟现实
十安_数学好题速析5 小时前
【多选】成比之道:巧解三角形中比例综合
笔记·学习·高考