UDF-uri Vectorizate de Mare Viteză cu pandas_udf în Apache Spark & PySpark

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

Executarea calculelor vectorizate în Python folosind transferul de memorie cu zero-copy prin Apache Arrow.

Sintaxă
@pandas_udf(returnType) def f(s: pd.Series) -> pd.Series:

pandas_udf combină flexibilitatea bibliotecilor științifice din Python (pandas, NumPy, SciPy) cu viteza de execuție distribuită Spark. Folosind formatul de memorie columnar Apache Arrow, datele sunt transferate direct între JVM și procesele Python fără costul serializării standard.

Performanța poate fi de până la 100 de ori mai mare comparativ cu un UDF Python convențional.

Exemplu: Calcul scalar vectorizat pe serii pandas
import pandas as pd
from pyspark.sql.functions import pandas_udf
from pyspark.sql.types import DoubleType

@pandas_udf(DoubleType())
def calculeaza_tva_vectorizat(pret: pd.Series) -> pd.Series:
    # Operație vectorizată nativă peste coloana pandas:
    return pret * 0.19

df_cu_tva = df.withColumn("valoare_tva", calculeaza_tva_vectorizat(F.col("pret_baza")))
df_cu_tva.show(5)

Comunitate & Schimb de cunoștințe

Întrebări & Exemple de Cod: UDF-uri Vectorizate de Mare Viteză cu pandas_udf

Ai o nelămurire despre utilizarea comenzii UDF-uri Vectorizate de Mare Viteză cu pandas_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.