大数据开发学习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) 最优解

链表高频面试经典题型

相关推荐
Xuanzang Road8 分钟前
第 40 届学习强企玄奘路戈壁挑战赛:在绝境中重塑自我
学习
固定资产管理系统软件44 分钟前
商务局RFID固定资产管理系统的应用价值与落地要点解析
大数据·python
tju新生代魔迷1 小时前
Python学习日记3
学习
hsjiasb2 小时前
FreeRTOS学习(三十九)——最终总结
学习·学习笔记·freertos
FoldWinCard2 小时前
K8s集群部署的方法原理
大数据·容器·kubernetes
招财小梗3 小时前
AI矩阵获客,品牌连锁落地方案揭秘
大数据·人工智能·矩阵
m4Rk_3 小时前
【论文阅读】Agent 记忆机制(47):Nemori——用“预测误差”判断什么经验值得被记住
论文阅读·人工智能·学习·开源·github
用户3610588626123 小时前
SparkSQL 之 Hive On Spark 原理分析
大数据·spark
约克34 小时前
2024年空调除甲醛技术参数与性能评测解析
学习
白色机械键盘4 小时前
领域大模型微调数据集构建实战
大数据·人工智能