Skip to content

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