Problem
Iceberg DataSource V2 BatchScan reports input bytes as total data file size (bytes). The profiler retains this metric in sql_plan_metrics_for_application.csv, but does not include it in data_source_information.csv. Consequently, data_size can be reported as zero for Iceberg scans.
Root cause
DataSourceView filters SQL plan metrics through the selected I/O-metric helper. The OSS helper recognizes only size of files read as a data-size metric, so it excludes Iceberg's V2 metric before generating the data source output.
This also affects consumers that derive scan-related features from data_size, scan_time, or scan_bw.
Scope
The metric is not lost during event-log parsing: AppSQLPlanAnalyzer records all SQL-plan metrics. The gap is limited to the I/O-metric filtering and data source output path in IoMetrics and DataSourceView.
QualX consumes data_size, scan_time, and derived scan_bw, so those features are also affected when the data source output omits the metric.
Relevant code:
core/src/main/scala/com/nvidia/spark/rapids/tool/analysis/AppSQLPlanAnalyzer.scala
core/src/main/scala/com/nvidia/spark/rapids/tool/views/IoMetrics.scala
core/src/main/scala/com/nvidia/spark/rapids/tool/views/DataSourceView.scala
user_tools/src/spark_rapids_tools/tools/qualx/featurizers/default.py
Acceptance criteria
- An Iceberg V2 scan populates
data_size from total data file size (bytes) in data_source_information.csv.
- Existing file-source scans using
size of files read are unchanged.
Related
Problem
Iceberg DataSource V2
BatchScanreports input bytes astotal data file size (bytes). The profiler retains this metric insql_plan_metrics_for_application.csv, but does not include it indata_source_information.csv. Consequently,data_sizecan be reported as zero for Iceberg scans.Root cause
DataSourceViewfilters SQL plan metrics through the selected I/O-metric helper. The OSS helper recognizes onlysize of files readas a data-size metric, so it excludes Iceberg's V2 metric before generating the data source output.This also affects consumers that derive scan-related features from
data_size,scan_time, orscan_bw.Scope
The metric is not lost during event-log parsing:
AppSQLPlanAnalyzerrecords all SQL-plan metrics. The gap is limited to the I/O-metric filtering and data source output path inIoMetricsandDataSourceView.QualX consumes
data_size,scan_time, and derivedscan_bw, so those features are also affected when the data source output omits the metric.Relevant code:
core/src/main/scala/com/nvidia/spark/rapids/tool/analysis/AppSQLPlanAnalyzer.scalacore/src/main/scala/com/nvidia/spark/rapids/tool/views/IoMetrics.scalacore/src/main/scala/com/nvidia/spark/rapids/tool/views/DataSourceView.scalauser_tools/src/spark_rapids_tools/tools/qualx/featurizers/default.pyAcceptance criteria
data_sizefromtotal data file size (bytes)indata_source_information.csv.size of files readare unchanged.Related