Skip to content

cast()

Описание

Функция cast() преобразует значение из одного типа данных в другой. Если преобразование невозможно, вызывает исключение.

Параметры

  • column: Column - столбец для преобразования
  • dataType: DataType - целевой тип данных

Возвращаемое значение

Column - преобразованное значение

Пример использования

from pyspark.sql import SparkSession
from pyspark.sql.functions import col
from pyspark.sql.types import IntegerType, DoubleType, StringType, DateType

# Создаем SparkSession
spark = SparkSession.builder.appName("cast_example").getOrCreate()

# Создаем DataFrame с разными типами данных
data = [
    ("123", "2023-01-01", 123.45),
    ("456", "2023-02-01", 456.78),
    ("789", "2023-03-01", 789.01)
]
df = spark.createDataFrame(data, ["text", "date", "number"])

# Преобразуем типы данных
result = df.select(
    col("text").cast(IntegerType()).alias("int_value"),
    col("date").cast(DateType()).alias("date_value"),
    col("number").cast(StringType()).alias("string_value"),
    col("text").cast(DoubleType()).alias("double_value")
).show()

# Результат:
# +---------+----------+------------+------------+
# |int_value|date_value|string_value|double_value|
# +---------+----------+------------+------------+
# |      123|2023-01-01|      123.45|       123.0|
# |      456|2023-02-01|      456.78|       456.0|
# |      789|2023-03-01|      789.01|       789.0|
# +---------+----------+------------+------------+

Примечания

  • Функция вызывает исключение при невозможности преобразования
  • Для безопасного преобразования используйте try_to_number()
  • Поддерживаются следующие типы данных:
  • IntegerType
  • DoubleType
  • StringType
  • DateType
  • TimestampType
  • BooleanType
  • и другие
  • Для проверки типа данных используйте typeof()