Skip to content

unwrap_udt()

Описание

Функция unwrap_udt() извлекает значение из пользовательского типа данных (UDT). UDT - это пользовательские типы данных, которые могут быть созданы для хранения сложных структур данных.

Параметры

  • column: Column - столбец с пользовательским типом данных

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

Column - извлеченное значение из UDT

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

from pyspark.sql import SparkSession
from pyspark.sql.functions import unwrap_udt, col
from pyspark.sql.types import UserDefinedType, StringType, IntegerType

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

# Определяем пользовательский тип данных
class PointUDT(UserDefinedType):
    def __init__(self):
        self.sqlType = StructType([
            StructField("x", IntegerType()),
            StructField("y", IntegerType())
        ])

    def serialize(self, obj):
        return {"x": obj.x, "y": obj.y}

    def deserialize(self, datum):
        return Point(datum["x"], datum["y"])

# Регистрируем UDT
spark.udf.register("PointUDT", PointUDT)

# Создаем DataFrame с UDT
data = [
    (1, Point(1, 2)),
    (2, Point(3, 4)),
    (3, Point(5, 6))
]
df = spark.createDataFrame(data, ["id", "point"])

# Извлекаем значения из UDT
result = df.select(
    "id",
    unwrap_udt(col("point")).alias("unwrapped_point")
).show()

# Результат:
# +---+---------------+
# | id|unwrapped_point|
# +---+---------------+
# |  1|     {1, 2}    |
# |  2|     {3, 4}    |
# |  3|     {5, 6}    |
# +---+---------------+

Примечания

  • Функция работает только с пользовательскими типами данных (UDT)
  • Для создания UDT используйте класс UserDefinedType
  • Для регистрации UDT используйте spark.udf.register()
  • Для работы с обычными типами данных используйте встроенные функции PySpark

XML функции

aggregate functions

array functions pyspark

basic functions

bitmap functions

bitwise functions

call functions

comparison functions

conditional functions

conversion functions

csv functions

datetime functions pyspark

encryption functions

expression functions

hash functions

java functions

json functions

map functions

mathematical functions pyspark

normal functions

null functions

sketch functions

sort functions

string functions pyspark

struct functions

system functions

type functions

window functions

xml functions

агрегатные функции

битовые операции

оконные функции

операторы сравнения

предикатные функции

системные функции

условные функции

функции для работы с битовыми картами

функции преобразования типов

функции шифрования