df-drills pandas · Polars · DuckDB SQL · DuckDB Relational 题目列表 登录

只读需要的部分

简单 20-io 读取文件 ioparquetpushdownlazy

工作目录里有一个事件文件 data/events.parquet,列为 event_id, user_id, ts, event_type, page。

只读出需要的部分:所有购买事件(event_type 恰好等于小写的 purchase)的 event_id, user_id, ts 三列。

  • 匹配区分大小写,Purchase 不算;event_type 为 null 的不算。
  • 尽量让读取过程只读这三列和过滤需要的列、只读满足条件的行(列裁剪和谓词下推),而不是先把整个文件读进内存再筛选。判题只看结果。

输出

列为 event_id, user_id, ts,行顺序不限。

工作目录里的文件 (case base)

data/events.parquet
#event_idInt64user_idInt64tsDatetime(time_unit='us', time_zone=None)event_typeStringpageString
1 1 53 2026-06-03 17:57:33 login /home
2 2 53 2026-06-04 15:21:00 visit /home
3 3 53 2026-06-04 15:22:00 view /product/303
4 4 53 2026-06-04 15:32:04 add_to_cart /cart
5 5 56 2026-06-05 23:24:19 login /home
6 6 56 2026-06-05 23:29:18 view /product/202
7 7 56 2026-06-05 23:36:15 view /product/202
8 8 56 2026-06-05 23:47:36 add_to_cart /cart
9 9 56 2026-06-05 23:56:24 checkout /checkout
10 10 56 2026-06-06 19:14:00 visit /home
11 11 56 2026-06-06 19:22:53 view /product/303
12 12 56 2026-06-06 19:25:12 view /home
13 13 56 2026-06-06 19:28:25 add_to_cart /cart
14 14 29 2026-06-07 10:40:01 login /home
15 15 29 2026-06-07 10:46:43 view /product/303
16 16 29 2026-06-07 11:04:46 add_to_cart /cart
17 17 29 2026-06-07 11:09:25 checkout /checkout
18 18 34 2026-06-07 12:57:49 login /home
19 19 34 2026-06-07 13:03:57 view /product/202
20 20 34 2026-06-07 13:11:07 view /home
显示前 20 行,共 1500 行

期望输出 (case base,行顺序不限)

#event_idInt64user_idInt64tsDatetime(time_unit='us', time_zone=None)
1 25 34 2026-06-08 20:14:11
2 38 11 2026-06-18 10:31:52
3 49 11 2026-06-19 13:50:37
4 74 29 2026-06-23 07:54:17
5 118 29 2026-07-02 20:15:11
6 122 50 2026-07-03 18:04:19
7 128 59 2026-07-05 20:44:27
8 141 45 2026-07-08 18:43:18
9 145 42 2026-07-08 23:30:18
10 152 35 2026-07-09 04:30:54
11 169 16 2026-07-13 06:00:04
12 210 16 2026-07-21 21:43:12
13 233 28 2026-07-23 09:43:30
14 266 20 2026-07-26 09:43:47
15 300 41 2026-07-30 11:27:12
16 303 26 2026-07-30 18:19:41
17 322 6 2026-08-02 17:42:45
18 327 57 2026-08-03 07:21:38
19 348 41 2026-08-07 06:43:01
20 350 41 2026-08-07 07:04:09
21 373 28 2026-08-11 07:00:44
22 379 28 2026-08-11 09:27:28
23 405 31 2026-08-16 12:13:58
24 427 59 2026-08-18 20:00:56
25 439 45 2026-08-21 07:15:05
26 456 15 2026-08-21 20:43:33
27 480 60 2026-08-24 05:35:38
28 492 8 2026-08-24 10:42:26
29 521 56 2026-08-27 22:56:20
30 558 60 2026-08-30 09:09:15
31 589 32 2026-09-03 07:43:37
32 595 8 2026-09-03 18:49:49
33 608 4 2026-09-04 08:35:27
34 610 17 2026-09-04 08:58:40
35 616 47 2026-09-04 13:52:57
36 643 22 2026-09-07 05:38:48
37 664 29 2026-09-08 02:40:56
38 680 4 2026-09-09 12:01:00
39 689 31 2026-09-09 20:41:06
40 713 23 2026-09-11 20:52:42
41 741 33 2026-09-12 12:36:51
42 747 39 2026-09-12 15:38:01
43 752 39 2026-09-12 16:11:24
44 765 4 2026-09-13 05:35:11
45 826 48 2026-09-15 11:26:11
46 836 11 2026-09-16 12:01:00
47 851 18 2026-09-16 15:02:00
48 858 17 2026-09-16 19:41:34
49 870 21 2026-09-17 06:05:03
50 894 54 2026-09-18 09:20:28
显示前 50 行,共 104 行