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()