大数据开发学习Day28

一、Linux

查看当前登录所有在线用户
强制结束 PID 为 10086 的进程
递归删除当前目录下所有空目录

bash 复制代码
who
kill -9 10086
find . -type d -empty -delete

who :查看服务器在线登录用户,运维安全巡检常用
kill -9 PID :强制杀死进程,卡死任务、僵尸进程收尾必备
find -type d -empty -delete:递归清理空目录,磁盘规整、数据归档常用

二、SQL

1378. 使用唯一标识码替换员工 ID

sql 复制代码
SELECT
    eu.unique_id,
    e.name
FROM Employees e
LEFT JOIN EmployeeUNI eu
ON e.id = eu.id;

标准左外连接匹配维度 ID

主表保留全部,匹配不到自动 NULL

数仓用户主表关联唯一标识通用模板

1393. 股票的资本损益

sql 复制代码
SELECT
    stock_name,
    SUM(CASE operation
        WHEN 'Sell' THEN price
        WHEN 'Buy' THEN -price
    END) AS capital_gain_loss
FROM Stocks
GROUP BY stock_name;

CASE 给买入加负号、卖出正号

分组 SUM 直接算净盈亏

行为类型做正负折算,金融 / 交易类 SQL 经典写法

1407. 排名靠前的旅行者

sql 复制代码
SELECT 
    u.name,
    IFNULL(SUM(r.distance), 0) AS travelled_distance
FROM users u 
LEFT JOIN rides r ON r.user_id = u.id
GROUP BY u.id, u.name
ORDER BY travelled_distance DESC, u.name ASC;

左连接保证无行程用户也能出现(距离为 NULL)

分组聚合总里程

多字段排序:指标降序、名字字典序升序兜底

三、Pyspark

python 复制代码
from pyspark.sql import SparkSession
from pyspark.sql.functions import col, sum, when

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

# 1. 左连接匹配唯一ID
emp = spark.createDataFrame([(1,"Alice"),(2,"Bob")],["id","name"])
uni = spark.createDataFrame([(1,"U001")],["id","unique_id"])
emp.join(uni, on="id", how="left").show()

# 2. 股票盈亏计算
stock = spark.createDataFrame([
    ("AAPL","Buy",100),
    ("AAPL","Sell",120)
], ["stock_name","operation","price"])

stock.withColumn("gain",
    when(col("operation")=="Sell", col("price"))
    .when(col("operation")=="Buy", -col("price"))
).groupBy("stock_name").sum("gain").show()

spark.stop()

Spark left 左外连接和 MySQL 逻辑完全一致
when 实现条件正负转换,对标 SQL CASE

分组聚合 + 排序,直接复用数仓业务开发逻辑

四、算法

160. 相交链表

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

def getIntersectionNode(headA, headB):
    a, b = headA, headB
    while a != b:
        a = a.next if a else headB
        b = b.next if b else headA
    return a

双指针遍历,走完自己走对方

时间 O (n)、空间 O (1) 最优解

链表高频面试经典题型

相关推荐
CarIise37 分钟前
SpringMVC 异常处理与拦截器
大数据·spring
橙露3 小时前
git简明教程以及资源分享
大数据·git
数字新视界3 小时前
一体化机柜在数据中心运维中的创新应用与优势分析
大数据·服务器·数据库·动环监控系统·动力与环境监控系统
FinelyYang3 小时前
考试系统简答题 AI 阅卷:覆盖度驱动、异步评分与人机协同落地实践
java·大数据·人工智能
SelectDB3 小时前
从 StarRocks 走向 Apache Doris:如何实现引擎平滑替换与架构升级?
大数据·数据库·数据分析
小小de风呀4 小时前
de风——【从零开始学习Linux】(九):进程基础 —— 从冯诺依曼体系到 fork 创建进程
linux·学习
大大大大晴天4 小时前
每天认识一个组件:JanusGraph
大数据
李某学编程4 小时前
基于ARM的微机原理学习笔记(一)
arm开发·笔记·学习
Song_RsHt4 小时前
Redis 与微服务,什么场景下无可替代
java·redis·后端·学习·微服务
数字新视界6 小时前
信创机房动环监控技术在智能运维中的应用与优势分析
大数据·服务器·数据库·动环监控系统·动力与环境监控系统