大数据开发学习Day29

一、Linux

查看磁盘整体占用
只查看 inode 使用情况
查找 7 天前修改过的文件

bash 复制代码
df -h
df -i
find . -mtime +7

df -h 查看磁盘分区容量、已用、剩余,集群磁盘告警常用
df -i 查看 inode 占用,排查inode 耗尽导致无法创建文件
find -mtime +7 查找 7 天前修改文件,日志归档、清理历史文件刚需

二、SQL

1440. 布尔表达式计算

sql 复制代码
SELECT
    left_operand,
    operator,
    right_operand,
    CASE
        WHEN operator = '>' AND left_operand > right_operand THEN 'true'
        WHEN operator = '<' AND left_operand < right_operand THEN 'true'
        WHEN operator = '=' AND left_operand = right_operand THEN 'true'
    ELSE 'false'
    END AS value
FROM Expressions;

CASE 多条件组合判断

字段逻辑运算 + 条件分支输出标签

数据校验、规则判定类 SQL 通用模板

1484. 按日期分组销售产品

sql 复制代码
SELECT
    sell_date,
    COUNT(DISTINCT product) AS num_sold,
    GROUP_CONCAT(DISTINCT product ORDER BY product SEPARATOR ',') AS products
FROM Activities
GROUP BY sell_date
ORDER BY sell_date;

GROUP_CONCAT 行转字符串拼接

支持去重、排序、指定分隔符

数仓每日商品汇总、标签拼接高频用法

1527. 患某种疾病的患者

sql 复制代码
SELECT *
FROM Patients
WHERE conditions LIKE 'DIAB1%' 
   OR conditions LIKE '% DIAB1%';

LIKE 模糊匹配

匹配开头 或 中间带空格的关键字

日志、标签字段模糊检索标准写法

三、Pyspark

python 复制代码
from pyspark.sql import SparkSession
from pyspark.sql.functions import col, countDistinct, collect_list, concat_ws, lower

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

# 1. 布尔表达式判断
expr = spark.createDataFrame([
    (5,">",3),(2,"<",4)
], ["left_operand","operator","right_operand"])

expr.withColumn("value",
    expr.casewhen((col("operator")==">") & (col("left_operand")>col("right_operand")), "true")
         .when((col("operator")=="<") & (col("left_operand")<col("right_operand")), "true")
         .otherwise("false")
).show()

# 2. 日期分组+产品拼接
act = spark.createDataFrame([
    ("2025-05-01","Banana"),
    ("2025-05-01","Apple")
], ["sell_date","product"])

act.groupBy("sell_date")
   .agg(
       countDistinct("product").alias("num_sold"),
       concat_ws(",", collect_list("product")).alias("products")
   ).show()

spark.stop()

Spark casewhen 对应 SQL CASE
collect_list + concat_ws 实现 GROUP_CONCAT 效果

分组聚合 + 字符串拼接,报表汇总常用

四、算法

27. 移除元素

python 复制代码
def removeElement(nums, val):
    slow = 0
    for fast in range(len(nums)):
        if nums[fast] != val:
            nums[slow] = nums[fast]
            slow += 1
    return slow

双指针原地移除指定值

不开新数组、空间 O (1)

数组基础双指针必背模板

相关推荐
an12321218 小时前
ARM嵌入式学习笔记:SPI通信协议详解
arm开发·笔记·学习
泛联新安8 小时前
软件定义汽车时代,如何让AI研发“可信”?——泛联新安构建汽车企业级可信AI体系的落地路径
大数据·人工智能·安全·网络安全·汽车·漏洞挖掘·代码安全
杨云龙UP8 小时前
TDengine 3.4.2.8 Community 三节点三副本生产集群部署实战(DNode/MNode/taosAdapter/Explorer)
大数据·linux·运维·数据库·tdengine·时序库
by209998 小时前
从结构体到对象:正式学习C++类的骨架、封装与this指针
c++·经验分享·学习
乌暮8 小时前
深入理解 Java 泛型:把「万能盒子」用对、用稳
java·开发语言·后端·学习
SelectDB技术团队9 小时前
一条日志两套引擎的账:把 Elasticsearch 检索与分析合并到同一份数据的落地写法
大数据·数据库·elasticsearch·搜索引擎·全文检索·日志·apache doris
大大大大晴天9 小时前
每天认识一个组件:远端数据服务Apache Celeborn
大数据
小雪崩9 小时前
嵌入式学习 day60:ARM汇编——触摸屏与SPI
汇编·arm开发·学习
幂律智能10 小时前
海外业务不同,合同系统该怎么建?
大数据·人工智能
Leo.yuan10 小时前
数据开发即质量检测:FineDataLink 5.0 在生产数据链路中的一体化实践
大数据