一、Linux

使用 tar 打包目录 logs/ 为 logs.tar
解压 tar 打包文件
查看当前目录整体占用磁盘大小

tar -cvf logs.tar logs/
tar -xvf logs.tar
du -sh

tar -cvf:打包目录,c 创建、v 可视化、f 指定文件名
tar -xvf:解压 tar 包,生产日志目录打包归档常用
du -sh:查看目录总大小,排查磁盘爆满、数据容量统计

二、SQL

595. 大的国家
s在这里插入图片描述

SELECT name, population, area
FROM World
WHERE area >= 3000000 
   OR population >= 25000000;

596. 超过 5 名学生的课
在这里插入图片描述

SELECT class
FROM Courses
GROUP BY class
HAVING COUNT(DISTINCT student) >= 5;

GROUP BY + HAVING 分组后过滤
COUNT(DISTINCT) 去重计数,防止重名 / 重复数据干扰

601. 体育馆的人流量
在这里插入图片描述

SELECT DISTINCT s1.*
FROM Stadium s1
JOIN Stadium s2 ON s1.id = s2.id + 1
JOIN Stadium s3 ON s1.id = s3.id - 1
WHERE s1.people >= 100
  AND s2.people >= 100
  AND s3.people >= 100;

三表自连接,左右相邻行关联
连续区间升级版(连续 3 天指标)

三、PySpark

条件筛选多条件判断
分组聚合 + 计数过滤
连续日期 / 连续行逻辑练习

from pyspark.sql import SparkSession
from pyspark.sql.functions import col, countDistinct

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

# 1. 多条件筛选 对应 LC595
world_data = [
    ("China", "Asia", 9600000, 1400000000),
    ("Japan", "Asia", 370000, 125000000)
]
df_world = spark.createDataFrame(world_data, ["name","continent","area","population"])
df_world.filter(
    (col("area") >= 3000000) | (col("population") >= 25000000)
).show()

# 2. 分组去重计数 对应 LC596
course_data = [("Math","A"),("Math","B"),("Math","C"),("Math","D"),("Math","E")]
df_course = spark.createDataFrame(course_data, ["class","student"])
df_course.groupBy("class")\
         .agg(countDistinct("student").alias("stu_cnt"))\
         .filter(col("stu_cnt") >= 5)\
         .show()

spark.stop()

Spark 多条件:& 且、| 或
countDistinct 对应 SQL 去重统计
过滤、分组聚合与 MySQL 逻辑完全对齐

四、算法

121. 买卖股票的最佳时机

def maxProfit(prices):
    min_price = prices[0]
    max_profit = 0
    for p in prices:
        min_price = min(min_price, p)
        max_profit = max(max_profit, p - min_price)
    return max_profit

更多推荐