private static Map<String, String> getPartishSummary(Partish partish, Table table, Snapshot snapshot) {
    if (partish.getPartition() != null) {
      PartitionStatisticsFile statsFile = IcebergTableUtil.getPartitionStatsFile(table, snapshot.snapshotId());
      if (statsFile != null) {
        Types.StructType partitionType = Partitioning.partitionType(table);
        Schema schema = PartitionStatsHandler.schema(partitionType);

        CloseableIterable<PartitionStats> partitionStatsRecords = PartitionStatsHandler.readPartitionStatsFile(
            schema, table.io().newInputFile(statsFile.path()));

        try (Closeable toClose = partitionStatsRecords) {
          PartitionStats partitionStats = Iterables.tryFind(partitionStatsRecords, stats -> {
            PartitionSpec spec = table.specs().get(stats.specId());
            PartitionData data  = IcebergTableUtil.toPartitionData(stats.partition(), partitionType,
                spec.partitionType());
            return spec.partitionToPath(data).equals(partish.getPartition().getName());
          }).orNull();

          if (partitionStats != null) {
            Map<String, String> stats = ImmutableMap.of(
                TOTAL_DATA_FILES_PROP, String.valueOf(partitionStats.dataFileCount()),
                TOTAL_RECORDS_PROP, String.valueOf(partitionStats.dataRecordCount()),
                TOTAL_EQ_DELETES_PROP, String.valueOf(partitionStats.equalityDeleteRecordCount()),
                TOTAL_POS_DELETES_PROP, String.valueOf(partitionStats.positionDeleteRecordCount()),
                TOTAL_FILE_SIZE_PROP, String.valueOf(partitionStats.totalDataFileSizeInBytes())
            );
            return stats;
          } else {
            LOG.warn("Partition {} not found in stats file: {}",
                partish.getPartition().getName(), statsFile.path());
            return null;
          }
        } catch (IOException e) {
          throw new UncheckedIOException(e);
        }
      } else {
        LOG.warn("Partition stats file not found for snapshot: {}", snapshot.snapshotId());
        return null;
      }
    }
    return snapshot.summary();
  }
@param jobConf Job configuration for InputFormat to access
@param deserializer Deserializer
@param exprNodeDesc Filter expression extracted by Hive
@return Entire filter to take advantage of Hive's pruning as well as Iceberg's pruning.
iceberg/iceberg-handler/src/main/java/org/apache/iceberg/mr/hive/HiveIcebergStorageHandler.java