Text.*

Power Query Text.* column expressions.

class fabrictools.powerquery.text.Text[source]

Bases: object

Namespace for Power Query Text.* functions.

All methods return Spark Column expressions for use in fabrictools.powerquery.table.Table.AddColumn() or fabrictools.powerquery.table.Table.TransformColumns().

static Clean(expr: pyspark.sql.Column | str) pyspark.sql.Column[source]

Lowercase string with control chars stripped and spaces removed (Power Query Text.Clean).

Delegates to fabrictools.norm_text().

Parameters:

expr (Column | str) – Spark column or string literal.

Returns:

Transformed column expression.

Return type:

Column

Example

>>> from fabrictools import Table, Text
>>> from pyspark.sql import functions as F
>>> df = Table.AddColumn(df, "Project No. 2", Text.Clean(F.col("Project No.")))
static Combine(texts: Sequence[pyspark.sql.Column | str], separator: str = '') pyspark.sql.Column[source]

Concatenate text values with a separator (Power Query Text.Combine).

Parameters:
  • texts (collections.abc.Sequence[Column | str]) – Column expressions or string literals to join.

  • separator (str) – Delimiter between parts (default empty string).

Returns:

Concatenated string column expression.

Return type:

Column

Example

>>> from fabrictools import Text
>>> from pyspark.sql import functions as F
>>> full = Text.Combine([F.col("first"), F.col("last")], " ")
static From(expr: pyspark.sql.Column | str) pyspark.sql.Column[source]

Cast a value to text (Power Query Text.From).

Parameters:

expr (Column | str) – Spark column or string literal.

Returns:

Non-null string column expression (null becomes "").

Return type:

Column

Example

>>> from fabrictools import Text
>>> from pyspark.sql import functions as F
>>> df.withColumn("id_text", Text.From(F.col("id")))
static Lower(expr: pyspark.sql.Column | str) pyspark.sql.Column[source]

Convert to lowercase (Power Query Text.Lower).

Parameters:

expr (Column | str) – Spark column or string literal.

Returns:

Lowercase column expression.

Return type:

Column

Example

>>> from fabrictools import Text
>>> from pyspark.sql import functions as F
>>> df.withColumn("code", Text.Lower(F.col("code")))
static Proper(expr: pyspark.sql.Column | str) pyspark.sql.Column[source]

Title-case each word (Power Query Text.Proper).

Parameters:

expr (Column | str) – Spark column or string literal.

Returns:

Title-cased column expression.

Return type:

Column

Example

>>> from fabrictools import Text
>>> from pyspark.sql import functions as F
>>> df.withColumn("client", Text.Proper(F.col("client")))
static Select(expr: pyspark.sql.Column | str, allowed: Sequence[str]) pyspark.sql.Column[source]

Keep only characters present in allowed (Power Query Text.Select).

Parameters:
  • expr (Column | str) – Spark column or string literal.

  • allowed (collections.abc.Sequence[str]) – Characters to keep (e.g. digits and punctuation for amounts).

Returns:

Filtered string column expression.

Return type:

Column

Example

>>> from fabrictools import Text
>>> from pyspark.sql import functions as F
>>> digits = Text.Select(F.col("amount_raw"), list("0123456789,.-"))
static Trim(expr: pyspark.sql.Column | str) pyspark.sql.Column[source]

Remove leading and trailing whitespace (Power Query Text.Trim).

Parameters:

expr (Column | str) – Spark column or string literal.

Returns:

Trimmed string column expression.

Return type:

Column

Example

>>> from fabrictools import Text
>>> from pyspark.sql import functions as F
>>> df.withColumn("name", Text.Trim(F.col("name")))
static Upper(expr: pyspark.sql.Column | str) pyspark.sql.Column[source]

Convert to uppercase (Power Query Text.Upper).

Parameters:

expr (Column | str) – Spark column or string literal.

Returns:

Uppercase column expression.

Return type:

Column

Example

>>> from fabrictools import Text
>>> from pyspark.sql import functions as F
>>> df.withColumn("code", Text.Upper(F.col("code")))