diff --git a/sdks/java/io/iceberg/src/main/java/org/apache/beam/sdk/io/iceberg/RecordWriterManager.java b/sdks/java/io/iceberg/src/main/java/org/apache/beam/sdk/io/iceberg/RecordWriterManager.java index b1e8a825601d..6ddd943eb198 100644 --- a/sdks/java/io/iceberg/src/main/java/org/apache/beam/sdk/io/iceberg/RecordWriterManager.java +++ b/sdks/java/io/iceberg/src/main/java/org/apache/beam/sdk/io/iceberg/RecordWriterManager.java @@ -228,8 +228,9 @@ static String getPartitionDataPath( String transformName = Preconditions.checkArgumentNotNull(partitionFieldMap.get(name)).transform().toString(); if (Transforms.month().toString().equals(transformName)) { - int month = YearMonth.parse(value).getMonthValue(); - value = String.valueOf(month); + long months = + ChronoUnit.MONTHS.between(EPOCH, YearMonth.parse(value).atDay(1).atStartOfDay()); + value = String.valueOf(months); } else if (Transforms.hour().toString().equals(transformName)) { long hour = ChronoUnit.HOURS.between(EPOCH, LocalDateTime.parse(value, HOUR_FORMATTER)); value = String.valueOf(hour);