Nou Generator de prompt AI — scrie prompturi mai bune pentru ChatGPT, Claude și Gemini →

Funcții Personalizate Scalare cu F.udf în Apache Spark & PySpark

udf Apache Spark 3.5 / PySpark Q&A / Distribuie cod

Extinderea limbajului Spark prin scrierea de funcții scalare personalizate în cod Python nativ.

Sintaxă
@F.udf(returnType=StringType()) / F.udf(func, return_type)

Atunci când logica de business nu poate fi exprimată folosind funcțiile native Spark SQL, puteți înregistra o funcție User Defined Function (UDF). Funcția primește ca intrare valori dintr-o coloană și returnează un nou tip de date specificat strict (IntegerType, StringType, etc.).

Atenție: UDF-urile Python clasice implică serializarea datelor între JVM și procesul Python (IPC), fiind mai lente decât funcțiile native. Când este posibil, preferați pandas_udf bazat pe Apache Arrow.

Exemplu: Mascarea datelor confidențiale cu un decorator UDF
from pyspark.sql import functions as F
from pyspark.sql.types import StringType

@F.udf(returnType=StringType())
def mascheaza_email(email):
    if not email or "@" not in email:
        return email
    user, domeniu = email.split("@", 1)
    return user[:2] + "****@" + domeniu

df_anonimizat = df.withColumn("email_mascat", mascheaza_email(F.col("email")))
df_anonimizat.select("email", "email_mascat").show(5)

Comunitate & Schimb de cunoștințe

Întrebări & Exemple de Cod: Funcții Personalizate Scalare cu F.udf

Ai o nelămurire despre utilizarea comenzii Funcții Personalizate Scalare cu F.udf sau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!

💬

Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!

Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.

Comunitate Adaugă o întrebare sau distribuie un cod

Moderare & Siguranță:

Pentru a menține calitatea și securitatea informațiilor, fiecare întrebare sau fragment de cod/prompt este analizat (manual sau prin moderare asistată de AI) înainte de publicare.