Apache Spark (pyspark) — преобразование двоичного файла в str (UUID) без UDFPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Apache Spark (pyspark) — преобразование двоичного файла в str (UUID) без UDF

Сообщение Anonymous »

Я не могу найти способ преобразовать двоичный файл в строковое представление без использования UDF
есть ли способ использовать встроенные функции Spark, а не UDF?
from pyspark.sql import DataFrame, SparkSession
import pyspark.sql.functions as F
import uuid
from pyspark.sql.types import Row, StringType

spark_test_instance = (SparkSession
.builder
.master('local')
.getOrCreate())
df: DataFrame = spark_test_instance().createDataFrame([Row()])

df = df.withColumn("id", F.lit(uuid.uuid4().bytes))
df = df.withColumn("length", F.length(df["id"]))

uuidbytes_to_str = F.udf(lambda x: str(uuid.UUID(bytes=bytes(x), version=4)), StringType())

df = df.withColumn("id_str", uuidbytes_to_str(df["id"]))
df = df.withColumn("length_str", F.length(df["id_str"]))

df.printSchema()
df.show(1, truncate=False)

дайте
root
|-- id: binary (nullable = false)
|-- length: integer (nullable = false)
|-- id_str: string (nullable = true)
|-- length_str: integer (nullable = false)

+-------------------------------------------------+------+------------------------------------+----------+
|id |length|id_str |length_str|
+-------------------------------------------------+------+------------------------------------+----------+
|[0A 35 DC 67 13 C8 47 7E B0 80 9F AB 98 CA FA 89]|16 |0a35dc67-13c8-477e-b080-9fab98cafa89|36 |
+-------------------------------------------------+------+------------------------------------+----------+



Подробнее здесь: https://stackoverflow.com/questions/787 ... ithout-udf
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»