digraph G {
0 [id="node0" labelType="html" label="<br><b>AdaptiveSparkPlan</b><br><br>" tooltip="AdaptiveSparkPlan isFinalPlan=true"];
subgraph cluster1 {
isCluster="true";
id="cluster1";
label="WholeStageCodegen (5)";
tooltip="WholeStageCodegen (5)";
2 [id="node2" labelType="html" label="<br><b>SerializeFromObject</b><br><br>" tooltip="SerializeFromObject [static_invoke(UTF8String.fromString(input[0, java.lang.String, true])) AS value#2097]"];
3 [id="node3" labelType="html" label="<br><b>MapElements</b><br><br>" tooltip="MapElements org.apache.spark.sql.delta.commands.VacuumCommand$$$Lambda/0x0000000802109d40@5c492475, obj#2096: java.lang.String"];
4 [id="node4" labelType="html" label="<br><b>DeserializeToObject</b><br><br>" tooltip="DeserializeToObject invoke(path#1960.toString()), obj#2095: java.lang.String"];
5 [id="node5" labelType="html" label="<br><b>EmptyRelation</b><br><br>" tooltip="EmptyRelation [plan_id=3157]"];
6 [id="node6" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [path#1960]"];
7 [id="node7" labelType="html" label="<br><b>EmptyRelation</b><br><br>" tooltip="EmptyRelation Filter (count#1962L = 1)"];
8 [id="node8" labelType="html" label="<br><b>Filter</b><br><br>" tooltip="Filter (count#1962L = 1)"];
9 [id="node9" labelType="html" label="<br><b>EmptyRelation</b><br><br>" tooltip="EmptyRelation LogicalQueryStage Aggregate [path#1960], [path#1960, count(1) AS count#1962L], HashAggregate(keys=[path#1960], functions=[count(1)])"];
10 [id="node10" labelType="html" label="<br><b>LogicalQueryStage</b><br><br>" tooltip="LogicalQueryStage Aggregate [path#1960], [path#1960, count(1) AS count#1962L], HashAggregate(keys=[path#1960], functions=[count(1)])"];
11 [id="node11" labelType="html" label="<br><b>HashAggregate</b><br><br>" tooltip="HashAggregate(keys=[path#1960], functions=[count(1)])"];
}
12 [id="node12" labelType="html" label="<b>Exchange</b><br><br>shuffle records written: 0<br>data size: 0.0 B<br>shuffle write time: 0 ms<br>number of partitions: 200<br>shuffle bytes written: 0.0 B" tooltip="Exchange hashpartitioning(path#1960, 200), ENSURE_REQUIREMENTS, [plan_id=3109]"];
subgraph cluster13 {
isCluster="true";
id="cluster13";
label="WholeStageCodegen (4)\n \nduration: total (min, med, max (stageId: taskId))\n14 ms (0 ms, 0 ms, 1 ms (stage 125.0: task 11777))";
tooltip="WholeStageCodegen (4)";
14 [id="node14" labelType="html" label="<b>HashAggregate</b><br><br>spill size: 0.0 B<br>time in aggregation build total (min, med, max (stageId: taskId))<br>0 ms (0 ms, 0 ms, 0 ms (stage 125.0: task 11770))<br>peak memory total (min, med, max (stageId: taskId))<br>50.0 MiB (256.0 KiB, 256.0 KiB, 256.0 KiB (stage 125.0: task 11770))<br>number of output rows: 0<br>number of sort fallback tasks: 0<br>avg hash probes per key: 0" tooltip="HashAggregate(keys=[path#1960], functions=[partial_count(1)])"];
15 [id="node15" labelType="html" label="<br><b>SerializeFromObject</b><br><br>" tooltip="SerializeFromObject [static_invoke(UTF8String.fromString(invoke(knownnotnull(assertnotnull(input[0, org.apache.spark.sql.delta.commands.VacuumCommand$FileNameAndSize, true])).path()))) AS path#1960]"];
}
16 [id="node16" labelType="html" label="<br><b>MapPartitions</b><br><br>" tooltip="MapPartitions org.apache.spark.sql.delta.commands.VacuumCommand$$$Lambda/0x00000008020dc000@322e395f, obj#1957: org.apache.spark.sql.delta.commands.VacuumCommand$FileNameAndSize"];
17 [id="node17" labelType="html" label="<br><b>DeserializeToObject</b><br><br>" tooltip="DeserializeToObject newInstance(class org.apache.spark.sql.delta.SerializableFileStatus), obj#1954: org.apache.spark.sql.delta.SerializableFileStatus"];
subgraph cluster18 {
isCluster="true";
id="cluster18";
label="WholeStageCodegen (3)\n \nduration: total (min, med, max (stageId: taskId))\n204 ms (1 ms, 1 ms, 5 ms (stage 125.0: task 11848))";
tooltip="WholeStageCodegen (3)";
19 [id="node19" labelType="html" label="<b>Filter</b><br><br>number of output rows: 0" tooltip="Filter ((modificationTime#1702L < 1787991979546) OR isDir#1701)"];
}
20 [id="node20" labelType="html" label="<b>InMemoryTableScan</b><br><br>number of output rows: 0" tooltip="InMemoryTableScan [path#1699, length#1700L, isDir#1701, modificationTime#1702L], [((modificationTime#1702L < 1787991979546) OR isDir#1701)]"];
21 [id="node21" labelType="html" label="<br><b>AdaptiveSparkPlan</b><br><br>" tooltip="AdaptiveSparkPlan isFinalPlan=true"];
subgraph cluster22 {
isCluster="true";
id="cluster22";
label="WholeStageCodegen (2)\n \nduration: 0 ms";
tooltip="WholeStageCodegen (2)";
23 [id="node23" labelType="html" label="<br><b>SerializeFromObject</b><br><br>" tooltip="SerializeFromObject [static_invoke(UTF8String.fromString(invoke(knownnotnull(assertnotnull(input[0, org.apache.spark.sql.delta.SerializableFileStatus, true])).path()))) AS path#1699, invoke(knownnotnull(assertnotnull(input[0, org.apache.spark.sql.delta.SerializableFileStatus, true])).length()) AS length#1700L, invoke(knownnotnull(assertnotnull(input[0, org.apache.spark.sql.delta.SerializableFileStatus, true])).isDir()) AS isDir#1701, invoke(knownnotnull(assertnotnull(input[0, org.apache.spark.sql.delta.SerializableFileStatus, true])).modificationTime()) AS modificationTime#1702L]"];
}
24 [id="node24" labelType="html" label="<br><b>MapGroups</b><br><br>" tooltip="MapGroups org.apache.spark.sql.internal.UDFAdaptors$$$Lambda/0x000000080209d5c0@563ebb8d, invoke(value#1693.toString()), newInstance(class org.apache.spark.sql.delta.SerializableFileStatus), [value#1693], [path#1683, length#1684L, isDir#1685, modificationTime#1686L], obj#1698: org.apache.spark.sql.delta.SerializableFileStatus"];
subgraph cluster25 {
isCluster="true";
id="cluster25";
label="WholeStageCodegen (1)\n \nduration: 0 ms";
tooltip="WholeStageCodegen (1)";
26 [id="node26" labelType="html" label="<b>Sort</b><br><br>sort time: 0 ms<br>peak memory: 0.0 B<br>spill size: 0.0 B" tooltip="Sort [value#1693 ASC NULLS FIRST], false, 0"];
}
27 [id="node27" labelType="html" label="<b>Exchange</b><br><br>shuffle records written: 0<br>remote merged reqs duration: 0 ms<br>remote merged blocks fetched: 0<br>records read: 0<br>local bytes read: 0.0 B<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: 0.0 B<br>local merged bytes read: 0.0 B<br>local merged chunks fetched: 0<br>shuffle write time: 0 ms<br>remote merged bytes read: 0.0 B<br>local merged blocks fetched: 0<br>corrupt merged block chunks: 0<br>fetch wait time: 0 ms<br>remote bytes read: 0.0 B<br>number of partitions: 0<br>remote reqs duration: 0 ms<br>remote bytes read to disk: 0.0 B<br>shuffle bytes written: 0.0 B" tooltip="Exchange hashpartitioning(value#1693, 200), ENSURE_REQUIREMENTS, [plan_id=2018]"];
28 [id="node28" labelType="html" label="<br><b>AppendColumnsWithObject</b><br><br>" tooltip="AppendColumnsWithObject org.apache.spark.sql.delta.commands.VacuumCommand$$$Lambda/0x000000080209c000@3c79482b, [static_invoke(UTF8String.fromString(invoke(knownnotnull(assertnotnull(input[0, org.apache.spark.sql.delta.SerializableFileStatus, true])).path()))) AS path#1683, invoke(knownnotnull(assertnotnull(input[0, org.apache.spark.sql.delta.SerializableFileStatus, true])).length()) AS length#1684L, invoke(knownnotnull(assertnotnull(input[0, org.apache.spark.sql.delta.SerializableFileStatus, true])).isDir()) AS isDir#1685, invoke(knownnotnull(assertnotnull(input[0, org.apache.spark.sql.delta.SerializableFileStatus, true])).modificationTime()) AS modificationTime#1686L], [static_invoke(UTF8String.fromString(input[0, java.lang.String, true])) AS value#1693]"];
29 [id="node29" labelType="html" label="<br><b>MapElements</b><br><br>" tooltip="MapElements org.apache.spark.sql.delta.commands.VacuumCommand$$$Lambda/0x0000000802093950@5e5aa004, obj#1682: org.apache.spark.sql.delta.SerializableFileStatus"];
30 [id="node30" labelType="html" label="<b>Scan</b><br><br>number of output rows: 0" tooltip="Scan[obj#1667]"];
2->0;
3->2;
4->3;
5->4;
6->5;
7->6;
8->7;
9->8;
10->9;
11->10;
12->11;
14->12;
15->14;
16->15;
17->16;
19->17;
20->19;
21->20;
23->21;
24->23;
26->24;
27->26;
28->27;
29->28;
30->29;
}
== Physical Plan ==
AdaptiveSparkPlan (43)
+- == Final Plan ==
ResultQueryStage (5), Statistics(sizeInBytes=8.0 EiB)
+- * SerializeFromObject (4)
+- * MapElements (3)
+- * DeserializeToObject (2)
+- * EmptyRelation (1)
+- Project (unknown)
+- EmptyRelation (unknown)
+- == Initial Plan ==
SerializeFromObject (42)
+- MapElements (41)
+- DeserializeToObject (40)
+- SortMergeJoin LeftAnti (39)
:- Sort (30)
: +- Project (29)
: +- Filter (28)
: +- HashAggregate (27)
: +- Exchange (26)
: +- HashAggregate (25)
: +- SerializeFromObject (24)
: +- MapPartitions (23)
: +- DeserializeToObject (22)
: +- Filter (21)
: +- InMemoryTableScan (6)
: +- InMemoryRelation (7)
: +- AdaptiveSparkPlan (20)
+- == Final Plan ==
ResultQueryStage (16)
+- * SerializeFromObject (15)
+- MapGroups (14)
+- * Sort (13)
+- ShuffleQueryStage (12), Statistics(sizeInBytes=0.0 B, rowCount=0)
+- Exchange (11)
+- AppendColumnsWithObject (10)
+- MapElements (9)
+- Scan (8)
+- == Initial Plan ==
SerializeFromObject (19)
+- MapGroups (18)
+- Sort (17)
+- Exchange (11)
+- AppendColumnsWithObject (10)
+- MapElements (9)
+- Scan (8)
+- Sort (38)
+- Exchange (37)
+- Project (36)
+- Filter (35)
+- SerializeFromObject (34)
+- MapPartitions (33)
+- DeserializeToObject (32)
+- Scan ExistingRDD Delta Table State #0 - hdlfs://065c2b6f-41bb-4a20-b7a2-eb965f9cb071.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-workload-determination-service/in/workload-dupl-lock-v3/_delta_log (31)
(1) EmptyRelation [codegen id : 5]
Output [1]: [path#1960]
Arguments: [plan_id=3157]
(2) DeserializeToObject [codegen id : 5]
Input [1]: [path#1960]
Arguments: invoke(path#1960.toString()), obj#2095: java.lang.String
(3) MapElements [codegen id : 5]
Input [1]: [obj#2095]
Arguments: org.apache.spark.sql.delta.commands.VacuumCommand$$$Lambda/0x0000000802109d40@5c492475, obj#2096: java.lang.String
(4) SerializeFromObject [codegen id : 5]
Input [1]: [obj#2096]
Arguments: [static_invoke(UTF8String.fromString(input[0, java.lang.String, true])) AS value#2097]
(5) ResultQueryStage
Output [1]: [value#2097]
Arguments: 3
(6) InMemoryTableScan
Output [4]: [path#1699, length#1700L, isDir#1701, modificationTime#1702L]
Arguments: [path#1699, length#1700L, isDir#1701, modificationTime#1702L], [((modificationTime#1702L < 1787991979546) OR isDir#1701)]
(7) InMemoryRelation
Arguments: [path#1699, length#1700L, isDir#1701, modificationTime#1702L], StorageLevel(disk, memory, deserialized, 1 replicas)
(8) Scan
Output [1]: [obj#1667]
Arguments: obj#1667: org.apache.spark.sql.delta.SerializableFileStatus, MapPartitionsRDD[189] at $anonfun$recordDeltaOperationInternal$1 at DatabricksLogging.scala:128
(9) MapElements
Input [1]: [obj#1667]
Arguments: org.apache.spark.sql.delta.commands.VacuumCommand$$$Lambda/0x0000000802093950@5e5aa004, obj#1682: org.apache.spark.sql.delta.SerializableFileStatus
(10) AppendColumnsWithObject
Input [1]: [obj#1682]
Arguments: org.apache.spark.sql.delta.commands.VacuumCommand$$$Lambda/0x000000080209c000@3c79482b, [static_invoke(UTF8String.fromString(invoke(knownnotnull(assertnotnull(input[0, org.apache.spark.sql.delta.SerializableFileStatus, true])).path()))) AS path#1683, invoke(knownnotnull(assertnotnull(input[0, org.apache.spark.sql.delta.SerializableFileStatus, true])).length()) AS length#1684L, invoke(knownnotnull(assertnotnull(input[0, org.apache.spark.sql.delta.SerializableFileStatus, true])).isDir()) AS isDir#1685, invoke(knownnotnull(assertnotnull(input[0, org.apache.spark.sql.delta.SerializableFileStatus, true])).modificationTime()) AS modificationTime#1686L], [static_invoke(UTF8String.fromString(input[0, java.lang.String, true])) AS value#1693]
(11) Exchange
Input [5]: [path#1683, length#1684L, isDir#1685, modificationTime#1686L, value#1693]
Arguments: hashpartitioning(value#1693, 200), ENSURE_REQUIREMENTS, [plan_id=2018]
(12) ShuffleQueryStage
Output [5]: [path#1683, length#1684L, isDir#1685, modificationTime#1686L, value#1693]
Arguments: 0
(13) Sort [codegen id : 1]
Input [5]: [path#1683, length#1684L, isDir#1685, modificationTime#1686L, value#1693]
Arguments: [value#1693 ASC NULLS FIRST], false, 0
(14) MapGroups
Input [5]: [path#1683, length#1684L, isDir#1685, modificationTime#1686L, value#1693]
Arguments: org.apache.spark.sql.internal.UDFAdaptors$$$Lambda/0x000000080209d5c0@563ebb8d, invoke(value#1693.toString()), newInstance(class org.apache.spark.sql.delta.SerializableFileStatus), [value#1693], [path#1683, length#1684L, isDir#1685, modificationTime#1686L], obj#1698: org.apache.spark.sql.delta.SerializableFileStatus
(15) SerializeFromObject [codegen id : 2]
Input [1]: [obj#1698]
Arguments: [static_invoke(UTF8String.fromString(invoke(knownnotnull(assertnotnull(input[0, org.apache.spark.sql.delta.SerializableFileStatus, true])).path()))) AS path#1699, invoke(knownnotnull(assertnotnull(input[0, org.apache.spark.sql.delta.SerializableFileStatus, true])).length()) AS length#1700L, invoke(knownnotnull(assertnotnull(input[0, org.apache.spark.sql.delta.SerializableFileStatus, true])).isDir()) AS isDir#1701, invoke(knownnotnull(assertnotnull(input[0, org.apache.spark.sql.delta.SerializableFileStatus, true])).modificationTime()) AS modificationTime#1702L]
(16) ResultQueryStage
Output [4]: [path#1699, length#1700L, isDir#1701, modificationTime#1702L]
Arguments: 1
(17) Sort
Input [5]: [path#1683, length#1684L, isDir#1685, modificationTime#1686L, value#1693]
Arguments: [value#1693 ASC NULLS FIRST], false, 0
(18) MapGroups
Input [5]: [path#1683, length#1684L, isDir#1685, modificationTime#1686L, value#1693]
Arguments: org.apache.spark.sql.internal.UDFAdaptors$$$Lambda/0x000000080209d5c0@563ebb8d, invoke(value#1693.toString()), newInstance(class org.apache.spark.sql.delta.SerializableFileStatus), [value#1693], [path#1683, length#1684L, isDir#1685, modificationTime#1686L], obj#1698: org.apache.spark.sql.delta.SerializableFileStatus
(19) SerializeFromObject
Input [1]: [obj#1698]
Arguments: [static_invoke(UTF8String.fromString(invoke(knownnotnull(assertnotnull(input[0, org.apache.spark.sql.delta.SerializableFileStatus, true])).path()))) AS path#1699, invoke(knownnotnull(assertnotnull(input[0, org.apache.spark.sql.delta.SerializableFileStatus, true])).length()) AS length#1700L, invoke(knownnotnull(assertnotnull(input[0, org.apache.spark.sql.delta.SerializableFileStatus, true])).isDir()) AS isDir#1701, invoke(knownnotnull(assertnotnull(input[0, org.apache.spark.sql.delta.SerializableFileStatus, true])).modificationTime()) AS modificationTime#1702L]
(20) AdaptiveSparkPlan
Output [4]: [path#1699, length#1700L, isDir#1701, modificationTime#1702L]
Arguments: isFinalPlan=true
(21) Filter
Input [4]: [path#1699, length#1700L, isDir#1701, modificationTime#1702L]
Condition : ((modificationTime#1702L < 1787991979546) OR isDir#1701)
(22) DeserializeToObject
Input [4]: [path#1699, length#1700L, isDir#1701, modificationTime#1702L]
Arguments: newInstance(class org.apache.spark.sql.delta.SerializableFileStatus), obj#1954: org.apache.spark.sql.delta.SerializableFileStatus
(23) MapPartitions
Input [1]: [obj#1954]
Arguments: org.apache.spark.sql.delta.commands.VacuumCommand$$$Lambda/0x00000008020dc000@322e395f, obj#1957: org.apache.spark.sql.delta.commands.VacuumCommand$FileNameAndSize
(24) SerializeFromObject
Input [1]: [obj#1957]
Arguments: [static_invoke(UTF8String.fromString(invoke(knownnotnull(assertnotnull(input[0, org.apache.spark.sql.delta.commands.VacuumCommand$FileNameAndSize, true])).path()))) AS path#1960]
(25) HashAggregate
Input [1]: [path#1960]
Keys [1]: [path#1960]
Functions [1]: [partial_count(1)]
Aggregate Attributes [1]: [count#2035L]
Results [2]: [path#1960, count#2037L]
(26) Exchange
Input [2]: [path#1960, count#2037L]
Arguments: hashpartitioning(path#1960, 200), ENSURE_REQUIREMENTS, [plan_id=2960]
(27) HashAggregate
Input [2]: [path#1960, count#2037L]
Keys [1]: [path#1960]
Functions [1]: [count(1)]
Aggregate Attributes [1]: [count(1)#1966L]
Results [2]: [path#1960, count(1)#1966L AS count#1962L]
(28) Filter
Input [2]: [path#1960, count#1962L]
Condition : (count#1962L = 1)
(29) Project
Output [1]: [path#1960]
Input [2]: [path#1960, count#1962L]
(30) Sort
Input [1]: [path#1960]
Arguments: [path#1960 ASC NULLS FIRST], false, 0
(31) Scan ExistingRDD Delta Table State #0 - hdlfs://065c2b6f-41bb-4a20-b7a2-eb965f9cb071.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-workload-determination-service/in/workload-dupl-lock-v3/_delta_log [codegen id : 1]
Output [10]: [txn#113, add#114, remove#115, metaData#116, protocol#117, cdc#118, checkpointMetadata#119, sidecar#120, domainMetadata#121, commitInfo#122]
Arguments: [txn#113, add#114, remove#115, metaData#116, protocol#117, cdc#118, checkpointMetadata#119, sidecar#120, domainMetadata#121, commitInfo#122], Delta Table State #0 - hdlfs://065c2b6f-41bb-4a20-b7a2-eb965f9cb071.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-workload-determination-service/in/workload-dupl-lock-v3/_delta_log MapPartitionsRDD[10] at $anonfun$recordDeltaOperationInternal$1 at DatabricksLogging.scala:128, ExistingRDD, UnknownPartitioning(0)
(32) DeserializeToObject
Input [10]: [txn#113, add#114, remove#115, metaData#116, protocol#117, cdc#118, checkpointMetadata#119, sidecar#120, domainMetadata#121, commitInfo#122]
Arguments: newInstance(class org.apache.spark.sql.delta.actions.SingleAction), obj#1655: org.apache.spark.sql.delta.actions.SingleAction
(33) MapPartitions
Input [1]: [obj#1655]
Arguments: org.apache.spark.sql.delta.commands.VacuumCommand$$$Lambda/0x000000080208f3e8@6d88f017, obj#1656: java.lang.String
(34) SerializeFromObject
Input [1]: [obj#1656]
Arguments: [static_invoke(UTF8String.fromString(input[0, java.lang.String, true])) AS value#1657]
(35) Filter
Input [1]: [value#1657]
Condition : isnotnull(value#1657)
(36) Project
Output [1]: [value#1657 AS path#1658]
Input [1]: [value#1657]
(37) Exchange
Input [1]: [path#1658]
Arguments: hashpartitioning(path#1658, 200), ENSURE_REQUIREMENTS, [plan_id=2966]
(38) Sort
Input [1]: [path#1658]
Arguments: [path#1658 ASC NULLS FIRST], false, 0
(39) SortMergeJoin
Left keys [1]: [path#1960]
Right keys [1]: [path#1658]
Join type: LeftAnti
Join condition: None
(40) DeserializeToObject
Input [1]: [path#1960]
Arguments: invoke(path#1960.toString()), obj#2095: java.lang.String
(41) MapElements
Input [1]: [obj#2095]
Arguments: org.apache.spark.sql.delta.commands.VacuumCommand$$$Lambda/0x0000000802109d40@5c492475, obj#2096: java.lang.String
(42) SerializeFromObject
Input [1]: [obj#2096]
Arguments: [static_invoke(UTF8String.fromString(input[0, java.lang.String, true])) AS value#2097]
(43) AdaptiveSparkPlan
Output [1]: [value#2097]
Arguments: isFinalPlan=true