mapInPandas

Wijst een iterator van batches in het huidige DataFrame toe met behulp van een Python systeemeigen functie die wordt uitgevoerd op pandas DataFrames, zowel als invoer en uitvoer, en retourneert het resultaat als een DataFrame.

Syntaxis

mapInPandas(func: "PandasMapIterFunction", schema: Union[StructType, str], barrier: bool = False, profile: Optional[ResourceProfile] = None)

Parameterwaarden

Kenmerk Typ Beschrijving
func function een Python systeemeigen functie die een iterator van pandas.DataFrames gebruikt en een iterator uitvoert van pandas.DataFrames.
schema DataType of str het retourtype van de func in PySpark. De waarde kan een pyspark.sql.types.DataType object of een tekenreeks met DDL-indeling zijn.
barrier bool, optioneel, standaard false Gebruik de uitvoering van de barrièremodus om ervoor te zorgen dat alle Python werknemers in de fase gelijktijdig worden gestart.
profile ResourceProfile, optioneel Het optionele ResourceProfile dat moet worden gebruikt voor mapInPandas.

Retouren

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)]