private void closeCurrentWriter() {
        if (latestWriter != null) {
            LOG.info("Start eliminated writer for partition {}", latestPartitionPath);
            final RollingFileWriter writer = latestWriter;
            final String partitionPath = latestPartitionPath;
            futures.add(CLOSE_EXECUTOR_SERVICE.submit(() -> {
                try {
                    writer.close();
                    LOG.info("End eliminated writer for partition {}", partitionPath);
                } catch (IOException | RuntimeException e) {
                    failures.add(e);
                }
            }));
        }
    }
Create a PartitionKey from the values in row.
<p>
Any PartitionKey returned by this method can be reused by the implementation.

@param row a data row
inlong-sort/sort-flink/sort-flink-v1.13/sort-connectors/iceberg/src/main/java/org/apache/inlong/sort/iceberg/sink/GroupedPartitionedFanoutWriter.java