digraph G {
0 [labelType="html" label="<br><b>AdaptiveSparkPlan</b><br><br>"];
subgraph cluster1 {
isCluster="true";
label="WholeStageCodegen (2)\n \nduration: 20 ms";
2 [labelType="html" label="<b>HashAggregate</b><br><br>time in aggregation build: 20 ms<br>number of output rows: 1"];
}
3 [labelType="html" label="<b>Exchange</b><br><br>shuffle records written: 200<br>local merged chunks fetched: 0<br>shuffle write time total (min, med, max (stageId: taskId))<br>32 ms (0 ms, 0 ms, 1 ms (stage 119810.0: task 21204970))<br>remote merged bytes read: 0.0 B<br>local merged blocks fetched: 0<br>corrupt merged block chunks: 0<br>remote merged reqs duration: 0 ms<br>remote merged blocks fetched: 0<br>records read: 200<br>local bytes read: 4.0 KiB<br>fetch wait time: 6 ms<br>remote bytes read: 10.1 KiB<br>merged fetch fallback count: 0<br>local blocks read: 57<br>remote merged chunks fetched: 0<br>remote blocks read: 143<br>data size total (min, med, max (stageId: taskId))<br>3.1 KiB (16.0 B, 16.0 B, 16.0 B (stage 119810.0: task 21204847))<br>local merged bytes read: 0.0 B<br>number of partitions: 1<br>remote reqs duration: 38 ms<br>remote bytes read to disk: 0.0 B<br>shuffle bytes written total (min, med, max (stageId: taskId))<br>14.1 KiB (72.0 B, 72.0 B, 72.0 B (stage 119810.0: task 21204847))"];
subgraph cluster4 {
isCluster="true";
label="WholeStageCodegen (1)\n \nduration: total (min, med, max (stageId: taskId))\n1 ms (0 ms, 0 ms, 1 ms (stage 119810.0: task 21204848))";
5 [labelType="html" label="<b>HashAggregate</b><br><br>time in aggregation build total (min, med, max (stageId: taskId))<br>0 ms (0 ms, 0 ms, 0 ms (stage 119810.0: task 21204847))<br>number of output rows: 200"];
6 [labelType="html" label="<br><b>Project</b><br><br>"];
7 [labelType="html" label="<b>Filter</b><br><br>number of output rows: 0"];
}
8 [labelType="html" label="<b>InMemoryTableScan</b><br><br>number of output rows: 0"];
9 [labelType="html" label="<br><b>AdaptiveSparkPlan</b><br><br>"];
subgraph cluster10 {
isCluster="true";
label="WholeStageCodegen (2)\n \nduration: total (min, med, max (stageId: taskId))\n0 ms (0 ms, 0 ms, 0 ms (stage 119807.0: task 21204641))";
11 [labelType="html" label="<br><b>SerializeFromObject</b><br><br>"];
}
12 [labelType="html" label="<br><b>MapGroups</b><br><br>"];
subgraph cluster13 {
isCluster="true";
label="WholeStageCodegen (1)\n \nduration: total (min, med, max (stageId: taskId))\n0 ms (0 ms, 0 ms, 0 ms (stage 119807.0: task 21204641))";
14 [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 119807.0: task 21204641))<br>peak memory total (min, med, max (stageId: taskId))<br>12.5 MiB (64.0 KiB, 64.0 KiB, 64.0 KiB (stage 119807.0: task 21204641))<br>spill size total (min, med, max (stageId: taskId))<br>0.0 B (0.0 B, 0.0 B, 0.0 B (stage 119807.0: task 21204641))"];
}
15 [labelType="html" label="<b>Exchange</b><br><br>shuffle records written: 0<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>remote merged reqs duration: 0 ms<br>remote merged blocks fetched: 0<br>records read: 0<br>local bytes read: 0.0 B<br>fetch wait time: 0 ms<br>remote 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>number of partitions: 200<br>remote reqs duration: 0 ms<br>remote bytes read to disk: 0.0 B<br>shuffle bytes written: 0.0 B"];
16 [labelType="html" label="<br><b>AppendColumnsWithObject</b><br><br>"];
17 [labelType="html" label="<b>Scan</b><br><br>number of output rows: 0"];
2->0;
3->2;
5->3;
6->5;
7->6;
8->7;
9->8;
11->9;
12->11;
14->12;
15->14;
16->15;
17->16;
}
18
AdaptiveSparkPlan isFinalPlan=true
HashAggregate(keys=[], functions=[count(1)])
WholeStageCodegen (2)
Exchange SinglePartition, ENSURE_REQUIREMENTS, [plan_id=2982336]
HashAggregate(keys=[], functions=[partial_count(1)])
Project
Filter isDir#3300677: boolean
WholeStageCodegen (1)
InMemoryTableScan [isDir#3300677], [isDir#3300677]
AdaptiveSparkPlan isFinalPlan=true
SerializeFromObject [staticinvoke(class org.apache.spark.unsafe.types.UTF8String, StringType, fromString, knownnotnull(assertnotnull(input[0, org.apache.spark.sql.delta.SerializableFileStatus, true])).path, true, false, true) AS path#3300675, knownnotnull(assertnotnull(input[0, org.apache.spark.sql.delta.SerializableFileStatus, true])).length AS length#3300676L, knownnotnull(assertnotnull(input[0, org.apache.spark.sql.delta.SerializableFileStatus, true])).isDir AS isDir#3300677, knownnotnull(assertnotnull(input[0, org.apache.spark.sql.delta.SerializableFileStatus, true])).modificationTime AS modificationTime#3300678L]
WholeStageCodegen (2)
MapGroups org.apache.spark.sql.KeyValueGroupedDataset$$Lambda$6934/0x0000000801d21280@5c7efbbd, value#3300669.toString, newInstance(class org.apache.spark.sql.delta.SerializableFileStatus), [value#3300669], [path#3300659, length#3300660L, isDir#3300661, modificationTime#3300662L], obj#3300674: org.apache.spark.sql.delta.SerializableFileStatus
Sort [value#3300669 ASC NULLS FIRST], false, 0
WholeStageCodegen (1)
Exchange hashpartitioning(value#3300669, 200), ENSURE_REQUIREMENTS, [plan_id=2982255]
AppendColumnsWithObject org.apache.spark.sql.delta.commands.VacuumCommand$$$Lambda$6931/0x0000000801d1d990@4e6d2c38, [staticinvoke(class org.apache.spark.unsafe.types.UTF8String, StringType, fromString, knownnotnull(assertnotnull(input[0, org.apache.spark.sql.delta.SerializableFileStatus, true])).path, true, false, true) AS path#3300659, knownnotnull(assertnotnull(input[0, org.apache.spark.sql.delta.SerializableFileStatus, true])).length AS length#3300660L, knownnotnull(assertnotnull(input[0, org.apache.spark.sql.delta.SerializableFileStatus, true])).isDir AS isDir#3300661, knownnotnull(assertnotnull(input[0, org.apache.spark.sql.delta.SerializableFileStatus, true])).modificationTime AS modificationTime#3300662L], [staticinvoke(class org.apache.spark.unsafe.types.UTF8String, StringType, fromString, input[0, java.lang.String, true], true, false, true) AS value#3300669]
Scan[obj#3300658]
== Physical Plan ==
AdaptiveSparkPlan (26)
+- == Final Plan ==
* HashAggregate (20)
+- ShuffleQueryStage (19), Statistics(sizeInBytes=3.1 KiB, rowCount=200)
+- Exchange (18)
+- * HashAggregate (17)
+- * Project (16)
+- * Filter (15)
+- TableCacheQueryStage (14), Statistics(sizeInBytes=0.0 B, rowCount=0)
+- InMemoryTableScan (1)
+- InMemoryRelation (2)
+- AdaptiveSparkPlan (13)
+- == Final Plan ==
* SerializeFromObject (9)
+- MapGroups (8)
+- * Sort (7)
+- ShuffleQueryStage (6), Statistics(sizeInBytes=0.0 B, rowCount=0)
+- Exchange (5)
+- AppendColumnsWithObject (4)
+- Scan (3)
+- == Initial Plan ==
SerializeFromObject (12)
+- MapGroups (11)
+- Sort (10)
+- Exchange (5)
+- AppendColumnsWithObject (4)
+- Scan (3)
+- == Initial Plan ==
HashAggregate (25)
+- Exchange (24)
+- HashAggregate (23)
+- Project (22)
+- Filter (21)
+- InMemoryTableScan (1)
+- InMemoryRelation (2)
+- AdaptiveSparkPlan (13)
+- == Final Plan ==
* SerializeFromObject (9)
+- MapGroups (8)
+- * Sort (7)
+- ShuffleQueryStage (6), Statistics(sizeInBytes=0.0 B, rowCount=0)
+- Exchange (5)
+- AppendColumnsWithObject (4)
+- Scan (3)
+- == Initial Plan ==
SerializeFromObject (12)
+- MapGroups (11)
+- Sort (10)
+- Exchange (5)
+- AppendColumnsWithObject (4)
+- Scan (3)
(1) InMemoryTableScan
Output [1]: [isDir#3300677]
Arguments: [isDir#3300677], [isDir#3300677]
(2) InMemoryRelation
Arguments: [path#3300675, length#3300676L, isDir#3300677, modificationTime#3300678L], CachedRDDBuilder(org.apache.spark.sql.execution.columnar.DefaultCachedBatchSerializer@685dbe62,StorageLevel(disk, memory, deserialized, 1 replicas),AdaptiveSparkPlan isFinalPlan=true
+- == Final Plan ==
*(2) SerializeFromObject [staticinvoke(class org.apache.spark.unsafe.types.UTF8String, StringType, fromString, knownnotnull(assertnotnull(input[0, org.apache.spark.sql.delta.SerializableFileStatus, true])).path, true, false, true) AS path#3300675, knownnotnull(assertnotnull(input[0, org.apache.spark.sql.delta.SerializableFileStatus, true])).length AS length#3300676L, knownnotnull(assertnotnull(input[0, org.apache.spark.sql.delta.SerializableFileStatus, true])).isDir AS isDir#3300677, knownnotnull(assertnotnull(input[0, org.apache.spark.sql.delta.SerializableFileStatus, true])).modificationTime AS modificationTime#3300678L]
+- MapGroups org.apache.spark.sql.KeyValueGroupedDataset$$Lambda$6934/0x0000000801d21280@5c7efbbd, value#3300669.toString, newInstance(class org.apache.spark.sql.delta.SerializableFileStatus), [value#3300669], [path#3300659, length#3300660L, isDir#3300661, modificationTime#3300662L], obj#3300674: org.apache.spark.sql.delta.SerializableFileStatus
+- *(1) Sort [value#3300669 ASC NULLS FIRST], false, 0
+- ShuffleQueryStage 0
+- Exchange hashpartitioning(value#3300669, 200), ENSURE_REQUIREMENTS, [plan_id=2982255]
+- AppendColumnsWithObject org.apache.spark.sql.delta.commands.VacuumCommand$$$Lambda$6931/0x0000000801d1d990@4e6d2c38, [staticinvoke(class org.apache.spark.unsafe.types.UTF8String, StringType, fromString, knownnotnull(assertnotnull(input[0, org.apache.spark.sql.delta.SerializableFileStatus, true])).path, true, false, true) AS path#3300659, knownnotnull(assertnotnull(input[0, org.apache.spark.sql.delta.SerializableFileStatus, true])).length AS length#3300660L, knownnotnull(assertnotnull(input[0, org.apache.spark.sql.delta.SerializableFileStatus, true])).isDir AS isDir#3300661, knownnotnull(assertnotnull(input[0, org.apache.spark.sql.delta.SerializableFileStatus, true])).modificationTime AS modificationTime#3300662L], [staticinvoke(class org.apache.spark.unsafe.types.UTF8String, StringType, fromString, input[0, java.lang.String, true], true, false, true) AS value#3300669]
+- Scan[obj#3300658]
+- == Initial Plan ==
SerializeFromObject [staticinvoke(class org.apache.spark.unsafe.types.UTF8String, StringType, fromString, knownnotnull(assertnotnull(input[0, org.apache.spark.sql.delta.SerializableFileStatus, true])).path, true, false, true) AS path#3300675, knownnotnull(assertnotnull(input[0, org.apache.spark.sql.delta.SerializableFileStatus, true])).length AS length#3300676L, knownnotnull(assertnotnull(input[0, org.apache.spark.sql.delta.SerializableFileStatus, true])).isDir AS isDir#3300677, knownnotnull(assertnotnull(input[0, org.apache.spark.sql.delta.SerializableFileStatus, true])).modificationTime AS modificationTime#3300678L]
+- MapGroups org.apache.spark.sql.KeyValueGroupedDataset$$Lambda$6934/0x0000000801d21280@5c7efbbd, value#3300669.toString, newInstance(class org.apache.spark.sql.delta.SerializableFileStatus), [value#3300669], [path#3300659, length#3300660L, isDir#3300661, modificationTime#3300662L], obj#3300674: org.apache.spark.sql.delta.SerializableFileStatus
+- Sort [value#3300669 ASC NULLS FIRST], false, 0
+- Exchange hashpartitioning(value#3300669, 200), ENSURE_REQUIREMENTS, [plan_id=2982255]
+- AppendColumnsWithObject org.apache.spark.sql.delta.commands.VacuumCommand$$$Lambda$6931/0x0000000801d1d990@4e6d2c38, [staticinvoke(class org.apache.spark.unsafe.types.UTF8String, StringType, fromString, knownnotnull(assertnotnull(input[0, org.apache.spark.sql.delta.SerializableFileStatus, true])).path, true, false, true) AS path#3300659, knownnotnull(assertnotnull(input[0, org.apache.spark.sql.delta.SerializableFileStatus, true])).length AS length#3300660L, knownnotnull(assertnotnull(input[0, org.apache.spark.sql.delta.SerializableFileStatus, true])).isDir AS isDir#3300661, knownnotnull(assertnotnull(input[0, org.apache.spark.sql.delta.SerializableFileStatus, true])).modificationTime AS modificationTime#3300662L], [staticinvoke(class org.apache.spark.unsafe.types.UTF8String, StringType, fromString, input[0, java.lang.String, true], true, false, true) AS value#3300669]
+- Scan[obj#3300658]
,None)
(3) Scan
Output [1]: [obj#3300658]
Arguments: obj#3300658: org.apache.spark.sql.delta.SerializableFileStatus, MapPartitionsRDD[203084] at $anonfun$recordDeltaOperationInternal$1 at DatabricksLogging.scala:128
(4) AppendColumnsWithObject
Input [1]: [obj#3300658]
Arguments: org.apache.spark.sql.delta.commands.VacuumCommand$$$Lambda$6931/0x0000000801d1d990@4e6d2c38, [staticinvoke(class org.apache.spark.unsafe.types.UTF8String, StringType, fromString, knownnotnull(assertnotnull(input[0, org.apache.spark.sql.delta.SerializableFileStatus, true])).path, true, false, true) AS path#3300659, knownnotnull(assertnotnull(input[0, org.apache.spark.sql.delta.SerializableFileStatus, true])).length AS length#3300660L, knownnotnull(assertnotnull(input[0, org.apache.spark.sql.delta.SerializableFileStatus, true])).isDir AS isDir#3300661, knownnotnull(assertnotnull(input[0, org.apache.spark.sql.delta.SerializableFileStatus, true])).modificationTime AS modificationTime#3300662L], [staticinvoke(class org.apache.spark.unsafe.types.UTF8String, StringType, fromString, input[0, java.lang.String, true], true, false, true) AS value#3300669]
(5) Exchange
Input [5]: [path#3300659, length#3300660L, isDir#3300661, modificationTime#3300662L, value#3300669]
Arguments: hashpartitioning(value#3300669, 200), ENSURE_REQUIREMENTS, [plan_id=2982255]
(6) ShuffleQueryStage
Output [5]: [path#3300659, length#3300660L, isDir#3300661, modificationTime#3300662L, value#3300669]
Arguments: 0
(7) Sort [codegen id : 1]
Input [5]: [path#3300659, length#3300660L, isDir#3300661, modificationTime#3300662L, value#3300669]
Arguments: [value#3300669 ASC NULLS FIRST], false, 0
(8) MapGroups
Input [5]: [path#3300659, length#3300660L, isDir#3300661, modificationTime#3300662L, value#3300669]
Arguments: org.apache.spark.sql.KeyValueGroupedDataset$$Lambda$6934/0x0000000801d21280@5c7efbbd, value#3300669.toString, newInstance(class org.apache.spark.sql.delta.SerializableFileStatus), [value#3300669], [path#3300659, length#3300660L, isDir#3300661, modificationTime#3300662L], obj#3300674: org.apache.spark.sql.delta.SerializableFileStatus
(9) SerializeFromObject [codegen id : 2]
Input [1]: [obj#3300674]
Arguments: [staticinvoke(class org.apache.spark.unsafe.types.UTF8String, StringType, fromString, knownnotnull(assertnotnull(input[0, org.apache.spark.sql.delta.SerializableFileStatus, true])).path, true, false, true) AS path#3300675, knownnotnull(assertnotnull(input[0, org.apache.spark.sql.delta.SerializableFileStatus, true])).length AS length#3300676L, knownnotnull(assertnotnull(input[0, org.apache.spark.sql.delta.SerializableFileStatus, true])).isDir AS isDir#3300677, knownnotnull(assertnotnull(input[0, org.apache.spark.sql.delta.SerializableFileStatus, true])).modificationTime AS modificationTime#3300678L]
(10) Sort
Input [5]: [path#3300659, length#3300660L, isDir#3300661, modificationTime#3300662L, value#3300669]
Arguments: [value#3300669 ASC NULLS FIRST], false, 0
(11) MapGroups
Input [5]: [path#3300659, length#3300660L, isDir#3300661, modificationTime#3300662L, value#3300669]
Arguments: org.apache.spark.sql.KeyValueGroupedDataset$$Lambda$6934/0x0000000801d21280@5c7efbbd, value#3300669.toString, newInstance(class org.apache.spark.sql.delta.SerializableFileStatus), [value#3300669], [path#3300659, length#3300660L, isDir#3300661, modificationTime#3300662L], obj#3300674: org.apache.spark.sql.delta.SerializableFileStatus
(12) SerializeFromObject
Input [1]: [obj#3300674]
Arguments: [staticinvoke(class org.apache.spark.unsafe.types.UTF8String, StringType, fromString, knownnotnull(assertnotnull(input[0, org.apache.spark.sql.delta.SerializableFileStatus, true])).path, true, false, true) AS path#3300675, knownnotnull(assertnotnull(input[0, org.apache.spark.sql.delta.SerializableFileStatus, true])).length AS length#3300676L, knownnotnull(assertnotnull(input[0, org.apache.spark.sql.delta.SerializableFileStatus, true])).isDir AS isDir#3300677, knownnotnull(assertnotnull(input[0, org.apache.spark.sql.delta.SerializableFileStatus, true])).modificationTime AS modificationTime#3300678L]
(13) AdaptiveSparkPlan
Output [4]: [path#3300675, length#3300676L, isDir#3300677, modificationTime#3300678L]
Arguments: isFinalPlan=true
(14) TableCacheQueryStage
Output [1]: [isDir#3300677]
Arguments: 0
(15) Filter [codegen id : 1]
Input [1]: [isDir#3300677]
Condition : isDir#3300677
(16) Project [codegen id : 1]
Output: []
Input [1]: [isDir#3300677]
(17) HashAggregate [codegen id : 1]
Input: []
Keys: []
Functions [1]: [partial_count(1)]
Aggregate Attributes [1]: [count#3300778L]
Results [1]: [count#3300779L]
(18) Exchange
Input [1]: [count#3300779L]
Arguments: SinglePartition, ENSURE_REQUIREMENTS, [plan_id=2982336]
(19) ShuffleQueryStage
Output [1]: [count#3300779L]
Arguments: 1
(20) HashAggregate [codegen id : 2]
Input [1]: [count#3300779L]
Keys: []
Functions [1]: [count(1)]
Aggregate Attributes [1]: [count(1)#3300715L]
Results [1]: [count(1)#3300715L AS count#3300716L]
(21) Filter
Input [1]: [isDir#3300677]
Condition : isDir#3300677
(22) Project
Output: []
Input [1]: [isDir#3300677]
(23) HashAggregate
Input: []
Keys: []
Functions [1]: [partial_count(1)]
Aggregate Attributes [1]: [count#3300778L]
Results [1]: [count#3300779L]
(24) Exchange
Input [1]: [count#3300779L]
Arguments: SinglePartition, ENSURE_REQUIREMENTS, [plan_id=2982274]
(25) HashAggregate
Input [1]: [count#3300779L]
Keys: []
Functions [1]: [count(1)]
Aggregate Attributes [1]: [count(1)#3300715L]
Results [1]: [count(1)#3300715L AS count#3300716L]
(26) AdaptiveSparkPlan
Output [1]: [count#3300716L]
Arguments: isFinalPlan=true