TimeWindowSampler - 时间窗口采样算子
功能概述
按照时间窗口对数据进行采样,每个窗口内均匀抽取指定数量的样本。支持按天、小时、月、周等时间粒度,适用于时间序列数据的周期性抽样。
触发条件
当用户请求以下任务时,应使用此skill:
- 按天抽样
- 按小时抽样
- 周期性抽样
- 时间窗口采样
- 按时间粒度分组后抽样
核心参数说明
必需参数
--input:输入JSONL文件路径--output:输出JSONL文件路径--time_field:时间字段名--window_size:窗口大小(如1d、2h、1m、1w)
可选参数
--time_format:时间格式字符串--sample_per_window:每个窗口采样数量,默认1--log_file:日志文件路径
输入文件格式
输入文件必须是JSONL,每行一个JSON对象,且至少包含时间字段。时间字段应能被脚本识别为日期时间字符串。
使用方法
python scripts/run_time_window_sampler.py --input data.jsonl --output sampled.jsonl --time_field event_time --window_size 1d --sample_per_window 2
输出示例
{"id": 1, "event_time": "2025-06-01 00:15:00", "_time_window": "2025-06-01", "_window_sample_index": 0}
{"id": 7, "event_time": "2025-06-01 06:15:00", "_time_window": "2025-06-01", "_window_sample_index": 1}
环境要求
- Python 3.10+
- 标准库
datetime
注意事项
- 无法解析时间字段的记录会被跳过
_time_window标记窗口起点标签_window_sample_index标记窗口内抽样顺序