Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Esegue il mapping di un iteratore di batch nel dataframe corrente usando una funzione nativa Python eseguita su dataframe pandas sia come input che come output e restituisce il risultato come dataframe.
Sintassi
mapInPandas(func: "PandasMapIterFunction", schema: Union[StructType, str], barrier: bool = False, profile: Optional[ResourceProfile] = None)
Parametri
| Parametro | Tipo | Descrizione |
|---|---|---|
func |
funzione | una funzione nativa di Python che accetta un iteratore di pandas.DataFrames e restituisce un iteratore di pandas.DataFrames. |
schema |
DataType o str | tipo restituito func di in PySpark. Il valore può essere un pyspark.sql.types.DataType oggetto o una stringa di tipo DDL formattato. |
barrier |
bool, facoltativo, false predefinito | Usare l'esecuzione della modalità barriera, assicurandosi che tutti i ruoli di lavoro Python nella fase vengano avviati simultaneamente. |
profile |
ResourceProfile, facoltativo | ResourceProfile facoltativo da usare per mapInPandas. |
Restituzioni
DataFrame
Examples
df = spark.createDataFrame([(1, 21), (2, 30)], ("id", "age"))
def filter_func(iterator):
for pdf in iterator:
yield pdf[pdf.id == 1]
df.mapInPandas(filter_func, df.schema).show()
# +---+---+
# | id|age|
# +---+---+
# | 1| 21|
# +---+---+
def mean_age(iterator):
for pdf in iterator:
yield pdf.groupby("id").mean().reset_index()
df.mapInPandas(mean_age, "id: bigint, age: double").show()
# +---+----+
# | id| age|
# +---+----+
# | 1|21.0|
# | 2|30.0|
# +---+----+
df.mapInPandas(filter_func, df.schema, barrier=True).collect()
# [Row(id=1, age=21)]