Skip to content

Pad

Pad the values of a column with a character up until it reaches a certain length.

Classes:

Name Description
Pad

Pads the values of source_column with the character up until it reaches length of characters

LPad

Pad with a character on the left side of the string.

RPad

Pad with a character on the right side of the string.

koheesio.spark.transformations.strings.pad.LPad module-attribute #

LPad = Pad

koheesio.spark.transformations.strings.pad.pad_directions module-attribute #

pad_directions = Literal['left', 'right']

koheesio.spark.transformations.strings.pad.Pad #

Pads the values of source_column with the character up until it reaches length of characters The direction param can be changed to apply either a left or a right pad. Defaults to left pad.

Wraps the lpad and rpad functions from PySpark.

Parameters:

Name Type Description Default
columns Union[str, List[str]]

The column (or list of columns) to pad. Alias: column

required
target_column Optional[str]

The column to store the result in. If not provided, the result will be stored in the source column. Alias: target_suffix - if multiple columns are given as source, this will be used as a suffix.

None
character constr(min_length=1)

The character to use for padding

required
length PositiveInt

Positive integer to indicate the intended length

required
direction Optional[pad_directions]

On which side to add the characters. Either "left" or "right". Defaults to "left"

left
Example

input_df:

column
hello
world
output_df = Pad(
    column="column",
    target_column="padded_column",
    character="*",
    length=10,
    direction="right",
).transform(input_df)

output_df:

column padded_column
hello hello*****
world world*****

Note: in the example above, we could have used the RPad class instead of Pad with direction="right" to achieve the same result.

character class-attribute instance-attribute #

character: constr(min_length=1) = Field(
    default=...,
    description="The character to use for padding",
)

direction class-attribute instance-attribute #

direction: Optional[pad_directions] = Field(
    default="left",
    description='On which side to add the characters . Either "left" or "right". Defaults to "left"',
)

length class-attribute instance-attribute #

length: PositiveInt = Field(
    default=...,
    description="Positive integer to indicate the intended length",
)

func #

func(column: Column)
Source code in src/koheesio/spark/transformations/strings/pad.py
def func(self, column: Column):
    func = lpad if self.direction == "left" else rpad
    return func(column, self.length, self.character)

koheesio.spark.transformations.strings.pad.RPad #

Pad with a character on the right side of the string.

See Pad class docstring for more information.

direction class-attribute instance-attribute #

direction: Optional[pad_directions] = 'right'