Show the Stage ID and Task ID that corresponds to the max metric
digraph G {
0 [labelType="html" label="<b>Exchange</b><br><br>shuffle records written: 0<br>local merged chunks fetched: 0<br>shuffle write time total (min, med, max (stageId: taskId))<br>0 ms (0 ms, 0 ms, 0 ms (stage 308.0: task 457))<br>remote merged bytes read total (min, med, max (stageId: taskId))<br>0.0 B (0.0 B, 0.0 B, 0.0 B (stage 308.0: task 457))<br>local merged blocks fetched: 0<br>corrupt merged block chunks: 0<br>remote merged reqs duration total (min, med, max (stageId: taskId))<br>0 ms (0 ms, 0 ms, 0 ms (stage 308.0: task 457))<br>remote merged blocks fetched: 0<br>records read: 0<br>local bytes read total (min, med, max (stageId: taskId))<br>0.0 B (0.0 B, 0.0 B, 0.0 B (stage 308.0: task 457))<br>fetch wait time total (min, med, max (stageId: taskId))<br>0 ms (0 ms, 0 ms, 0 ms (stage 308.0: task 457))<br>remote bytes read total (min, med, max (stageId: taskId))<br>0.0 B (0.0 B, 0.0 B, 0.0 B (stage 308.0: task 457))<br>merged fetch fallback count: 0<br>local blocks read: 0<br>remote merged chunks fetched: 0<br>remote blocks read: 0<br>data size total (min, med, max (stageId: taskId))<br>0.0 B (0.0 B, 0.0 B, 0.0 B (stage 308.0: task 457))<br>local merged bytes read total (min, med, max (stageId: taskId))<br>0.0 B (0.0 B, 0.0 B, 0.0 B (stage 308.0: task 457))<br>number of partitions: 16<br>remote reqs duration total (min, med, max (stageId: taskId))<br>0 ms (0 ms, 0 ms, 0 ms (stage 308.0: task 457))<br>remote bytes read to disk total (min, med, max (stageId: taskId))<br>0.0 B (0.0 B, 0.0 B, 0.0 B (stage 308.0: task 457))<br>shuffle bytes written total (min, med, max (stageId: taskId))<br>0.0 B (0.0 B, 0.0 B, 0.0 B (stage 308.0: task 457))"];
subgraph cluster1 {
isCluster="true";
label="WholeStageCodegen (6)\n \nduration: total (min, med, max (stageId: taskId))\n0 ms (0 ms, 0 ms, 0 ms (stage 289.0: task 402))";
2 [labelType="html" label="<b>Filter</b><br><br>number of output rows: 0"];
}
3 [labelType="html" label="<b>SortAggregate</b><br><br>number of output rows: 2"];
subgraph cluster4 {
isCluster="true";
label="WholeStageCodegen (5)\n \nduration: total (min, med, max (stageId: taskId))\n8.8 s (127 ms, 177 ms, 222 ms (stage 289.0: task 413))";
5 [labelType="html" label="<b>Sort</b><br><br>sort time total (min, med, max (stageId: taskId))<br>0 ms (0 ms, 0 ms, 0 ms (stage 289.0: task 402))<br>peak memory total (min, med, max (stageId: taskId))<br>7.1 MiB (64.0 KiB, 64.0 KiB, 2.1 MiB (stage 289.0: task 403))<br>spill size total (min, med, max (stageId: taskId))<br>0.0 B (0.0 B, 0.0 B, 0.0 B (stage 289.0: task 402))"];
}
6 [labelType="html" label="<b>StateStoreSave</b><br><br>number of shuffle partitions: 50<br>number of removed state rows: 0<br>data returned from Python workers total (min, med, max (stageId: taskId))<br>0.0 B (0.0 B, 0.0 B, 0.0 B (stage 289.0: task 402))<br>number of total state rows: 3<br>number of state store instances: 50<br>memory used by state total (min, med, max (stageId: taskId))<br>23.3 KiB (432.0 B, 432.0 B, 1240.0 B (stage 289.0: task 427))<br>count of cache hit on states cache in provider: 200<br>number of output rows: 2<br>estimated size of state only on current version total (min, med, max (stageId: taskId))<br>7.3 KiB (104.0 B, 104.0 B, 880.0 B (stage 289.0: task 427))<br>number of rows which are dropped by watermark: 0<br>data sent to Python workers total (min, med, max (stageId: taskId))<br>0.0 B (0.0 B, 0.0 B, 0.0 B (stage 289.0: task 402))<br>count of cache miss on states cache in provider: 0<br>time to commit changes total (min, med, max (stageId: taskId))<br>8.4 s (87 ms, 175 ms, 215 ms (stage 289.0: task 413))<br>time to remove total (min, med, max (stageId: taskId))<br>0 ms (0 ms, 0 ms, 0 ms (stage 289.0: task 402))<br>number of updated state rows: 2<br>time to update total (min, med, max (stageId: taskId))<br>233 ms (1 ms, 1 ms, 71 ms (stage 289.0: task 444))<br>number of output rows: 0"];
7 [labelType="html" label="<b>SortAggregate</b><br><br>number of output rows: 2"];
subgraph cluster8 {
isCluster="true";
label="WholeStageCodegen (4)\n \nduration: total (min, med, max (stageId: taskId))\n160 ms (1 ms, 1 ms, 34 ms (stage 289.0: task 444))";
9 [labelType="html" label="<b>Sort</b><br><br>sort time total (min, med, max (stageId: taskId))<br>0 ms (0 ms, 0 ms, 0 ms (stage 289.0: task 402))<br>peak memory total (min, med, max (stageId: taskId))<br>7.1 MiB (64.0 KiB, 64.0 KiB, 2.1 MiB (stage 289.0: task 403))<br>spill size total (min, med, max (stageId: taskId))<br>0.0 B (0.0 B, 0.0 B, 0.0 B (stage 289.0: task 402))"];
}
10 [labelType="html" label="<b>StateStoreRestore</b><br><br>number of output rows: 2"];
11 [labelType="html" label="<b>SortAggregate</b><br><br>number of output rows: 2"];
subgraph cluster12 {
isCluster="true";
label="WholeStageCodegen (3)\n \nduration: total (min, med, max (stageId: taskId))\n179 ms (1 ms, 2 ms, 41 ms (stage 289.0: task 403))";
13 [labelType="html" label="<b>Sort</b><br><br>sort time total (min, med, max (stageId: taskId))<br>0 ms (0 ms, 0 ms, 0 ms (stage 289.0: task 402))<br>peak memory total (min, med, max (stageId: taskId))<br>7.1 MiB (64.0 KiB, 64.0 KiB, 2.1 MiB (stage 289.0: task 403))<br>spill size total (min, med, max (stageId: taskId))<br>0.0 B (0.0 B, 0.0 B, 0.0 B (stage 289.0: task 402))"];
}
14 [labelType="html" label="<b>Exchange</b><br><br>shuffle records written: 2<br>local merged chunks fetched: 0<br>shuffle write time total (min, med, max (stageId: taskId))<br>3 ms (0 ms, 0 ms, 1 ms (stage 288.0: task 399))<br>remote merged bytes read total (min, med, max (stageId: taskId))<br>0.0 B (0.0 B, 0.0 B, 0.0 B (stage 289.0: task 402))<br>local merged blocks fetched: 0<br>corrupt merged block chunks: 0<br>remote merged reqs duration total (min, med, max (stageId: taskId))<br>0 ms (0 ms, 0 ms, 0 ms (stage 289.0: task 402))<br>remote merged blocks fetched: 0<br>records read: 2<br>local bytes read total (min, med, max (stageId: taskId))<br>393.0 B (0.0 B, 0.0 B, 235.0 B (stage 289.0: task 444))<br>fetch wait time total (min, med, max (stageId: taskId))<br>0 ms (0 ms, 0 ms, 0 ms (stage 289.0: task 402))<br>remote bytes read total (min, med, max (stageId: taskId))<br>0.0 B (0.0 B, 0.0 B, 0.0 B (stage 289.0: task 402))<br>merged fetch fallback count: 0<br>local blocks read: 2<br>remote merged chunks fetched: 0<br>remote blocks read: 0<br>data size total (min, med, max (stageId: taskId))<br>1168.0 B (0.0 B, 0.0 B, 624.0 B (stage 288.0: task 399))<br>local merged bytes read total (min, med, max (stageId: taskId))<br>0.0 B (0.0 B, 0.0 B, 0.0 B (stage 289.0: task 402))<br>number of partitions: 50<br>remote reqs duration total (min, med, max (stageId: taskId))<br>0 ms (0 ms, 0 ms, 0 ms (stage 289.0: task 402))<br>remote bytes read to disk total (min, med, max (stageId: taskId))<br>0.0 B (0.0 B, 0.0 B, 0.0 B (stage 289.0: task 402))<br>shuffle bytes written total (min, med, max (stageId: taskId))<br>393.0 B (0.0 B, 0.0 B, 235.0 B (stage 288.0: task 399))"];
15 [labelType="html" label="<b>SortAggregate</b><br><br>number of output rows: 2"];
subgraph cluster16 {
isCluster="true";
label="WholeStageCodegen (2)\n \nduration: total (min, med, max (stageId: taskId))\n1.2 s (0 ms, 0 ms, 610 ms (stage 288.0: task 399))";
17 [labelType="html" label="<b>Sort</b><br><br>sort time total (min, med, max (stageId: taskId))<br>0 ms (0 ms, 0 ms, 0 ms (stage 288.0: task 400))<br>peak memory total (min, med, max (stageId: taskId))<br>4.1 MiB (0.0 B, 0.0 B, 2.1 MiB (stage 288.0: task 400))<br>spill size total (min, med, max (stageId: taskId))<br>0.0 B (0.0 B, 0.0 B, 0.0 B (stage 288.0: task 400))"];
18 [labelType="html" label="<br><b>Project</b><br><br>"];
}
19 [labelType="html" label="<br><b>EventTimeWatermark</b><br><br>"];
subgraph cluster20 {
isCluster="true";
label="WholeStageCodegen (1)\n \nduration: total (min, med, max (stageId: taskId))\n1.2 s (0 ms, 0 ms, 584 ms (stage 288.0: task 399))";
21 [labelType="html" label="<br><b>Project</b><br><br>"];
}
22 [labelType="html" label="<br><b>Project</b><br><br>"];
23 [labelType="html" label="<b>Filter</b><br><br>number of output rows: 2"];
24 [labelType="html" label="<b>MicroBatchScan</b><br><br>number of output rows: 2<br>estimated number of fetched offsets out of range: 0<br>number of data loss error: 0"];
2->0;
3->2;
5->3;
6->5;
7->6;
9->7;
10->9;
11->10;
13->11;
14->13;
15->14;
17->15;
18->17;
19->18;
21->19;
22->21;
23->22;
24->23;
}
Project [data#23.title AS title#28, data#23.url AS url#29, data#23.uuid AS uuid#30, data#23.inventory_code AS inventory_code#32, data#23.created_at AS created_at#33, data#23.date AS date#41]
Filter ((((((isnotnull(value#8) AND NOT (RLIKE(from_json(StructField(agent,StringType,true), cast(value#8 as string), Some(Etc/UTC)).agent, Yeti|compatible|googlebot|google\.com\/bot\.html) <=> true)) AND (cast(from_json(StructField(date,StringType,true), cast(value#8 as string), Some(Etc/UTC)).date as date) = cast(from_utc_timestamp(2025-12-05 22:12:00.017, Asia/Seoul) as date))) AND (from_json(StructField(ad_type,StringType,true), cast(value#8 as string), Some(Etc/UTC)).ad_type = request)) AND isnotnull(from_json(StructField(title,StringType,true), cast(value#8 as string), Some(Etc/UTC)).title)) AND NOT (from_json(StructField(title,StringType,true), cast(value#8 as string), Some(Etc/UTC)).title = )) AND isnotnull(from_json(StructField(url,StringType,true), cast(value#8 as string), Some(Etc/UTC)).url))
MicroBatchScan[key#7, value#8, topic#9, partition#10, offset#11L, timestamp#12, timestampType#13] class org.apache.spark.sql.kafka010.KafkaSourceProvider$KafkaScan