Package org.apache.iceberg.transforms
Interface Transform<S,T>
- Type Parameters:
S- Java class of source valuesT- Java class of transformed values
- All Superinterfaces:
Serializable
- All Known Implementing Classes:
Days,Hours,Months,UnknownTransform
A transform function used for partitioning.
Implementations of this interface can be used to transform values, check or types, and project
predicates to predicates on partition values.
-
Method Summary
Modifier and TypeMethodDescriptiondefault TDeprecated.default SerializableFunction<S, T> Returns a function that applies this transform to values of the giventype.booleancanTransform(Type type) Checks whether this function can be applied to the givenType.default StringReturn the unique transform name to check if similar transforms for the same source field are added multiple times in partition spec builder.getResultType(Type sourceType) Returns theTypeproduced by this transform given a source type.default booleanReturn whether this transform is the identity transform.default booleanisVoid()Return whether this transform is the void transform.default booleanWhether the transform preserves the order of values (is monotonic).project(String name, BoundPredicate<S> predicate) Transforms apredicateto an inclusive predicate on the partition values produced by the transform.projectStrict(String name, BoundPredicate<S> predicate) Transforms apredicateto a strict predicate on the partition values produced by the transform.default booleansatisfiesOrderOf(Transform<?, ?> other) Whether ordering by this transform's result satisfies the ordering of another transform's result.default StringtoHumanString(Type type, T value) default StringtoHumanString(T value) Deprecated.usetoHumanString(Type, Object)instead; will be removed in 2.0.0
-
Method Details
-
apply
Deprecated.usebind(Type)instead; will be removed in 2.0.0Transforms a value to its corresponding partition value.- Parameters:
value- a source value- Returns:
- a transformed partition value
-
bind
Returns a function that applies this transform to values of the giventype. -
canTransform
Checks whether this function can be applied to the givenType.- Parameters:
type- a type- Returns:
- true if this transform can be applied to the type, false otherwise
-
getResultType
Returns theTypeproduced by this transform given a source type.- Parameters:
sourceType- a type- Returns:
- the result type created by the apply method for the given type
-
preservesOrder
default boolean preservesOrder()Whether the transform preserves the order of values (is monotonic).A transform preserves order for values when for any given a and b, if a < b then apply(a) <= apply(b).
- Returns:
- true if the transform preserves the order of values
-
satisfiesOrderOf
Whether ordering by this transform's result satisfies the ordering of another transform's result.For example, sorting by day(ts) will produce an ordering that is also by month(ts) or year(ts). However, sorting by day(ts) will not satisfy the order of hour(ts) or identity(ts).
- Returns:
- true if ordering by this transform is equivalent to ordering by the other transform
-
project
Transforms apredicateto an inclusive predicate on the partition values produced by the transform.This inclusive transform guarantees that if pred(v) is true, then projected(apply(v)) is true.
- Parameters:
name- the field name for partition valuespredicate- a predicate for source values- Returns:
- an inclusive predicate on partition values
-
projectStrict
Transforms apredicateto a strict predicate on the partition values produced by the transform.This strict transform guarantees that if strict(apply(v)) is true, then pred(v) is also true.
- Parameters:
name- the field name for partition valuespredicate- a predicate for source values- Returns:
- an inclusive predicate on partition values
-
isIdentity
default boolean isIdentity()Return whether this transform is the identity transform.- Returns:
- true if this is an identity transform, false otherwise
-
isVoid
default boolean isVoid()Return whether this transform is the void transform.- Returns:
- true if this is a void transform, false otherwise
-
toHumanString
Deprecated.usetoHumanString(Type, Object)instead; will be removed in 2.0.0Returns a human-readable String representation of a transformed value.null values will return "null"
- Parameters:
value- a transformed value- Returns:
- a human-readable String representation of the value
-
toHumanString
-
dedupName
Return the unique transform name to check if similar transforms for the same source field are added multiple times in partition spec builder.- Returns:
- a name used for dedup
-
bind(Type)instead; will be removed in 2.0.0