typeof()
Описание
Функция typeof()
возвращает строковое представление типа данных значения.
Параметры
column
: Column - столбец для проверки типа
Возвращаемое значение
Column - строка с названием типа данных
Пример использования
from pyspark.sql import SparkSession
from pyspark.sql.functions import col, lit
from pyspark.sql.types import IntegerType, DoubleType, StringType, DateType
# Создаем SparkSession
spark = SparkSession.builder.appName("typeof_example").getOrCreate()
# Создаем DataFrame с разными типами данных
data = [
(123, "text", 123.45, "2023-01-01"),
(456, "more text", 456.78, "2023-02-01")
]
df = spark.createDataFrame(data, ["int_col", "str_col", "double_col", "date_col"])
# Проверяем типы данных
result = df.select(
col("int_col").cast(IntegerType()).alias("int_value"),
col("str_col").cast(StringType()).alias("str_value"),
col("double_col").cast(DoubleType()).alias("double_value"),
col("date_col").cast(DateType()).alias("date_value")
).select(
"int_value",
"str_value",
"double_value",
"date_value",
col("int_value").typeof().alias("int_type"),
col("str_value").typeof().alias("str_type"),
col("double_value").typeof().alias("double_type"),
col("date_value").typeof().alias("date_type")
).show()
# Результат:
# +---------+---------+------------+----------+---------+---------+------------+----------+
# |int_value|str_value|double_value|date_value|int_type |str_type |double_type |date_type |
# +---------+---------+------------+----------+---------+---------+------------+----------+
# | 123| text| 123.45|2023-01-01| integer| string| double| date|
# | 456|more text| 456.78|2023-02-01| integer| string| double| date|
# +---------+---------+------------+----------+---------+---------+------------+----------+
Примечания
- Функция возвращает строковое представление типа данных
- Поддерживаются все основные типы данных PySpark
- Для преобразования типов данных используйте
cast()
- Для безопасного преобразования используйте
try_to_number()