digraph G {
subgraph cluster0 {
isCluster="true";
label="WholeStageCodegen (1)";
1 [labelType="html" label="<br><b>Project</b><br><br>"];
2 [labelType="html" label="<br><b>SerializeFromObject</b><br><br>"];
}
3 [labelType="html" label="<br><b>Scan</b><br><br>"];
2->1;
3->2;
}
4
Project [if (isnull(_1#41303)) null else named_struct(path, _1#41303.path, partitionValues, _1#41303.partitionValues, size, _1#41303.size, modificationTime, _1#41303.modificationTime, dataChange, _1#41303.dataChange, stats, null, tags, _1#41303.tags, deletionVector, _1#41303.deletionVector, baseRowId, _1#41303.baseRowId, defaultRowCommitVersion, _1#41303.defaultRowCommitVersion, clusteringProvider, _1#41303.clusteringProvider) AS add#41312, _2#41304L AS index#41309L, null AS remove#41315, null AS cdc#41319, 0 AS version#41324L, false AS isLast#41330, false AS shouldSkip#41337]
SerializeFromObject [if (isnull(knownnotnull(assertnotnull(input[0, scala.Tuple2, true]))._1)) null else named_struct(path, staticinvoke(class org.apache.spark.unsafe.types.UTF8String, StringType, fromString, knownnotnull(knownnotnull(assertnotnull(input[0, scala.Tuple2, true]))._1).path, true, false, true), partitionValues, externalmaptocatalyst(lambdavariable(ExternalMapToCatalyst_key, ObjectType(class java.lang.Object), true, -1), staticinvoke(class org.apache.spark.unsafe.types.UTF8String, StringType, fromString, validateexternaltype(lambdavariable(ExternalMapToCatalyst_key, ObjectType(class java.lang.Object), true, -1), StringType, ObjectType(class java.lang.String)), true, false, true), lambdavariable(ExternalMapToCatalyst_value, ObjectType(class java.lang.Object), true, -2), staticinvoke(class org.apache.spark.unsafe.types.UTF8String, StringType, fromString, validateexternaltype(lambdavariable(ExternalMapToCatalyst_value, ObjectType(class java.lang.Object), true, -2), StringType, ObjectType(class java.lang.String)), true, false, true), knownnotnull(knownnotnull(assertnotnull(input[0, scala.Tuple2, true]))._1).partitionValues), size, knownnotnull(knownnotnull(assertnotnull(input[0, scala.Tuple2, true]))._1).size, modificationTime, knownnotnull(knownnotnull(assertnotnull(input[0, scala.Tuple2, true]))._1).modificationTime, dataChange, knownnotnull(knownnotnull(assertnotnull(input[0, scala.Tuple2, true]))._1).dataChange, stats, staticinvoke(class org.apache.spark.unsafe.types.UTF8String, StringType, fromString, knownnotnull(knownnotnull(assertnotnull(input[0, scala.Tuple2, true]))._1).stats, true, false, true), tags, externalmaptocatalyst(lambdavariable(ExternalMapToCatalyst_key, ObjectType(class java.lang.Object), true, -3), staticinvoke(class org.apache.spark.unsafe.types.UTF8String, StringType, fromString, validateexternaltype(lambdavariable(ExternalMapToCatalyst_key, ObjectType(class java.lang.Object), true, -3), StringType, ObjectType(class java.lang.String)), true, false, true), lambdavariable(ExternalMapToCatalyst_value, ObjectType(class java.lang.Object), true, -4), staticinvoke(class org.apache.spark.unsafe.types.UTF8String, StringType, fromString, validateexternaltype(lambdavariable(ExternalMapToCatalyst_value, ObjectType(class java.lang.Object), true, -4), StringType, ObjectType(class java.lang.String)), true, false, true), knownnotnull(knownnotnull(assertnotnull(input[0, scala.Tuple2, true]))._1).tags), deletionVector, if (isnull(knownnotnull(knownnotnull(assertnotnull(input[0, scala.Tuple2, true]))._1).deletionVector)) null else named_struct(storageType, staticinvoke(class org.apache.spark.unsafe.types.UTF8String, StringType, fromString, knownnotnull(knownnotnull(knownnotnull(assertnotnull(input[0, scala.Tuple2, true]))._1).deletionVector).storageType, true, false, true), pathOrInlineDv, staticinvoke(class org.apache.spark.unsafe.types.UTF8String, StringType, fromString, knownnotnull(knownnotnull(knownnotnull(assertnotnull(input[0, scala.Tuple2, true]))._1).deletionVector).pathOrInlineDv, true, false, true), offset, unwrapoption(IntegerType, knownnotnull(knownnotnull(knownnotnull(assertnotnull(input[0, scala.Tuple2, true]))._1).deletionVector).offset), sizeInBytes, knownnotnull(knownnotnull(knownnotnull(assertnotnull(input[0, scala.Tuple2, true]))._1).deletionVector).sizeInBytes, cardinality, knownnotnull(knownnotnull(knownnotnull(assertnotnull(input[0, scala.Tuple2, true]))._1).deletionVector).cardinality, maxRowIndex, unwrapoption(LongType, knownnotnull(knownnotnull(knownnotnull(assertnotnull(input[0, scala.Tuple2, true]))._1).deletionVector).maxRowIndex)), baseRowId, unwrapoption(LongType, knownnotnull(knownnotnull(assertnotnull(input[0, scala.Tuple2, true]))._1).baseRowId), defaultRowCommitVersion, unwrapoption(LongType, knownnotnull(knownnotnull(assertnotnull(input[0, scala.Tuple2, true]))._1).defaultRowCommitVersion), clusteringProvider, staticinvoke(class org.apache.spark.unsafe.types.UTF8String, StringType, fromString, unwrapoption(ObjectType(class java.lang.String), knownnotnull(knownnotnull(assertnotnull(input[0, scala.Tuple2, true]))._1).clusteringProvider), true, false, true)) AS _1#41303, knownnotnull(assertnotnull(input[0, scala.Tuple2, true]))._2 AS _2#41304L]
WholeStageCodegen (1)
Scan[obj#41302]
== Physical Plan ==
* Project (3)
+- * SerializeFromObject (2)
+- Scan (1)
(1) Scan
Output [1]: [obj#41302]
Arguments: obj#41302: scala.Tuple2, ZippedWithIndexRDD[1196] at start at FileStorageAdapterImpl.java:529
(2) SerializeFromObject [codegen id : 1]
Input [1]: [obj#41302]
Arguments: [if (isnull(knownnotnull(assertnotnull(input[0, scala.Tuple2, true]))._1)) null else named_struct(path, staticinvoke(class org.apache.spark.unsafe.types.UTF8String, StringType, fromString, knownnotnull(knownnotnull(assertnotnull(input[0, scala.Tuple2, true]))._1).path, true, false, true), partitionValues, externalmaptocatalyst(lambdavariable(ExternalMapToCatalyst_key, ObjectType(class java.lang.Object), true, -1), staticinvoke(class org.apache.spark.unsafe.types.UTF8String, StringType, fromString, validateexternaltype(lambdavariable(ExternalMapToCatalyst_key, ObjectType(class java.lang.Object), true, -1), StringType, ObjectType(class java.lang.String)), true, false, true), lambdavariable(ExternalMapToCatalyst_value, ObjectType(class java.lang.Object), true, -2), staticinvoke(class org.apache.spark.unsafe.types.UTF8String, StringType, fromString, validateexternaltype(lambdavariable(ExternalMapToCatalyst_value, ObjectType(class java.lang.Object), true, -2), StringType, ObjectType(class java.lang.String)), true, false, true), knownnotnull(knownnotnull(assertnotnull(input[0, scala.Tuple2, true]))._1).partitionValues), size, knownnotnull(knownnotnull(assertnotnull(input[0, scala.Tuple2, true]))._1).size, modificationTime, knownnotnull(knownnotnull(assertnotnull(input[0, scala.Tuple2, true]))._1).modificationTime, dataChange, knownnotnull(knownnotnull(assertnotnull(input[0, scala.Tuple2, true]))._1).dataChange, stats, staticinvoke(class org.apache.spark.unsafe.types.UTF8String, StringType, fromString, knownnotnull(knownnotnull(assertnotnull(input[0, scala.Tuple2, true]))._1).stats, true, false, true), tags, externalmaptocatalyst(lambdavariable(ExternalMapToCatalyst_key, ObjectType(class java.lang.Object), true, -3), staticinvoke(class org.apache.spark.unsafe.types.UTF8String, StringType, fromString, validateexternaltype(lambdavariable(ExternalMapToCatalyst_key, ObjectType(class java.lang.Object), true, -3), StringType, ObjectType(class java.lang.String)), true, false, true), lambdavariable(ExternalMapToCatalyst_value, ObjectType(class java.lang.Object), true, -4), staticinvoke(class org.apache.spark.unsafe.types.UTF8String, StringType, fromString, validateexternaltype(lambdavariable(ExternalMapToCatalyst_value, ObjectType(class java.lang.Object), true, -4), StringType, ObjectType(class java.lang.String)), true, false, true), knownnotnull(knownnotnull(assertnotnull(input[0, scala.Tuple2, true]))._1).tags), deletionVector, if (isnull(knownnotnull(knownnotnull(assertnotnull(input[0, scala.Tuple2, true]))._1).deletionVector)) null else named_struct(storageType, staticinvoke(class org.apache.spark.unsafe.types.UTF8String, StringType, fromString, knownnotnull(knownnotnull(knownnotnull(assertnotnull(input[0, scala.Tuple2, true]))._1).deletionVector).storageType, true, false, true), pathOrInlineDv, staticinvoke(class org.apache.spark.unsafe.types.UTF8String, StringType, fromString, knownnotnull(knownnotnull(knownnotnull(assertnotnull(input[0, scala.Tuple2, true]))._1).deletionVector).pathOrInlineDv, true, false, true), offset, unwrapoption(IntegerType, knownnotnull(knownnotnull(knownnotnull(assertnotnull(input[0, scala.Tuple2, true]))._1).deletionVector).offset), sizeInBytes, knownnotnull(knownnotnull(knownnotnull(assertnotnull(input[0, scala.Tuple2, true]))._1).deletionVector).sizeInBytes, cardinality, knownnotnull(knownnotnull(knownnotnull(assertnotnull(input[0, scala.Tuple2, true]))._1).deletionVector).cardinality, maxRowIndex, unwrapoption(LongType, knownnotnull(knownnotnull(knownnotnull(assertnotnull(input[0, scala.Tuple2, true]))._1).deletionVector).maxRowIndex)), baseRowId, unwrapoption(LongType, knownnotnull(knownnotnull(assertnotnull(input[0, scala.Tuple2, true]))._1).baseRowId), defaultRowCommitVersion, unwrapoption(LongType, knownnotnull(knownnotnull(assertnotnull(input[0, scala.Tuple2, true]))._1).defaultRowCommitVersion), clusteringProvider, staticinvoke(class org.apache.spark.unsafe.types.UTF8String, StringType, fromString, unwrapoption(ObjectType(class java.lang.String), knownnotnull(knownnotnull(assertnotnull(input[0, scala.Tuple2, true]))._1).clusteringProvider), true, false, true)) AS _1#41303, knownnotnull(assertnotnull(input[0, scala.Tuple2, true]))._2 AS _2#41304L]
(3) Project [codegen id : 1]
Output [7]: [if (isnull(_1#41303)) null else named_struct(path, _1#41303.path, partitionValues, _1#41303.partitionValues, size, _1#41303.size, modificationTime, _1#41303.modificationTime, dataChange, _1#41303.dataChange, stats, null, tags, _1#41303.tags, deletionVector, _1#41303.deletionVector, baseRowId, _1#41303.baseRowId, defaultRowCommitVersion, _1#41303.defaultRowCommitVersion, clusteringProvider, _1#41303.clusteringProvider) AS add#41312, _2#41304L AS index#41309L, null AS remove#41315, null AS cdc#41319, 0 AS version#41324L, false AS isLast#41330, false AS shouldSkip#41337]
Input [2]: [_1#41303, _2#41304L]