Class PartitionSpec

java.lang.Object
org.apache.iceberg.PartitionSpec
All Implemented Interfaces:
Serializable

public class PartitionSpec extends Object implements Serializable
Represents how to produce partition data for a table.

Partition data is produced by transforming columns in a table. Each column transform is represented by a named PartitionField.

See Also:
  • Method Details

    • schema

      public Schema schema()
      Returns the Schema for this spec.
    • specId

      public int specId()
      Returns the ID of this spec.
    • fields

      public List<PartitionField> fields()
      Returns the list of partition fields for this spec.
    • isPartitioned

      public boolean isPartitioned()
    • isUnpartitioned

      public boolean isUnpartitioned()
    • toUnbound

      public UnboundPartitionSpec toUnbound()
    • getFieldsBySourceId

      public List<PartitionField> getFieldsBySourceId(int fieldId)
      Returns the field that partitions the given source field
      Parameters:
      fieldId - a field id from the source schema
      Returns:
      the field that partitions the given source field
    • partitionType

      public Types.StructType partitionType()
      Returns a Types.StructType for partition data defined by this spec.
    • rawPartitionType

      public Types.StructType rawPartitionType()
      Returns a struct matching partition information as written into manifest files. See partitionType() for a struct with field ID's potentially re-assigned to avoid conflict.
    • javaClasses

      public Class<?>[] javaClasses()
    • partitionToPath

      public String partitionToPath(StructLike data)
    • compatibleWith

      public boolean compatibleWith(PartitionSpec other)
      Returns true if this spec is equivalent to the other, with partition field ids ignored. That is, if both specs have the same number of fields, field order, field name, source columns, and transforms.
      Parameters:
      other - another PartitionSpec
      Returns:
      true if the specs have the same fields, source columns, and transforms.
    • equals

      public boolean equals(Object other)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • identitySourceIds

      public Set<Integer> identitySourceIds()
      Returns the source field ids for identity partitions.
      Returns:
      a set of source ids for the identity partitions.
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • unpartitioned

      public static PartitionSpec unpartitioned()
      Returns a spec for unpartitioned tables.
      Returns:
      a partition spec with no partitions
    • builderFor

      public static PartitionSpec.Builder builderFor(Schema schema)
      Creates a new partition spec builder for the given Schema.
      Parameters:
      schema - a schema
      Returns:
      a partition spec builder for the given schema