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)
Întrebări & Exemple de Cod:
Funcții Personalizate Scalare cu F.udfAi o nelămurire despre utilizarea comenzii
Funcții Personalizate Scalare cu F.udfsau 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.