CH 16 / SOURCE EXAMPLE

sample_join.sql

ch16 推荐系统离线服务/code/ch01_sample_flow/sample_join.sql

这个示例讲什么

│ ├── sample_join.sql # Hive SQL 非实时样本拼接示例

上面来自章节 README 或源码自身的说明,不是自动验证的运行结果,也不能代替 PDF 的书中论断。讲解时请结合实际代码、输入输出与原书页码。

源码结构与阅读入口

此文件没有可提取的 Python 顶层类/函数目录;可直接按行阅读完整源码。

完整源码 · 28 行

1-- sample_join.sql2-- 基于 Hive SQL 的非实时样本拼接3-- 对应书中 code_hive_sample_join4--5-- [MOCK] 以下 SQL 在 Hive/Spark SQL 环境下可运行。6-- 实际任务还需明确日期分区、Label 去重规则,7-- 以及同一 Request ID 出现多个特征版本时的选版策略。89WITH latest_label AS (10    SELECT request_id, item_id, click, watch_time_ms, event_time_ms11    FROM (12        SELECT request_id, item_id, click, watch_time_ms, event_time_ms,13            ROW_NUMBER() OVER (14                PARTITION BY request_id, item_id15                ORDER BY event_time_ms DESC) AS rn16        FROM dwd_item_feedback17        WHERE dt BETWEEN '${start_dt}' AND '${end_dt}'18    ) t19    WHERE rn = 120)21INSERT OVERWRITE TABLE dws_training_sample PARTITION (dt='${biz_dt}')22SELECT f.request_id, f.item_id, f.user_features, f.context_features,23    f.item_features, f.request_time_ms,24    l.click, l.watch_time_ms, l.event_time_ms AS label_time_ms25FROM dwd_request_features f26JOIN latest_label l27    ON f.request_id = l.request_id AND f.item_id = l.item_id28WHERE f.dt = '${biz_dt}';

如何用于学习或编写新代码

  1. 先看章节 README 的依赖和运行成本,定位这个例子的输入、输出及关键函数。
  2. 在原书 PDF 中找到对应概念的具体页;代码演示与书中论断分开标注。
  3. 只在依赖和耗时可控时运行单个示例,修改一个参数并记录真实输出与失败情形。
  4. 参考实现新代码时说明复用、改动、测试与尚未完成的生产依赖;教学示例并非生产系统。