Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Mappar en iterator av batchar i den aktuella dataramen med hjälp av en Python intern funktion som utförs på Pandas DataFrames både som indata och utdata, och returnerar resultatet som en DataFrame.
Syntax
mapInPandas(func: "PandasMapIterFunction", schema: Union[StructType, str], barrier: bool = False, profile: Optional[ResourceProfile] = None)
Parameters
| Parameter | Type | Beskrivning |
|---|---|---|
func |
function | en Python intern funktion som tar en iterator av pandas.DataFrames och matar ut en iterator av pandas.DataFrames. |
schema |
DataType eller str | returtypen för func i PySpark. Värdet kan vara antingen ett pyspark.sql.types.DataType objekt eller en DDL-formaterad typsträng. |
barrier |
bool, valfritt, standard falskt | Använd körning av barriärläge så att alla Python arbetare i fasen startas samtidigt. |
profile |
ResourceProfile, valfritt | Den valfria ResourceProfile som ska användas för mapInPandas. |
Retur
DataFrame
Exempel
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)]