Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Mappe un itérateur de lots dans le DataFrame actuel à l’aide d’une fonction native Python effectuée sur pandas DataFrames à la fois comme entrée et sortie, et retourne le résultat sous forme de DataFrame.
Syntaxe
mapInPandas(func: "PandasMapIterFunction", schema: Union[StructType, str], barrier: bool = False, profile: Optional[ResourceProfile] = None)
Paramètres
| Paramètre | Type | Description |
|---|---|---|
func |
function | une fonction native Python qui accepte un itérateur de pandas.DataFrames et génère un itérateur de pandas.DataFrames. |
schema |
DataType ou str | type de retour de l’objet func PySpark. La valeur peut être un pyspark.sql.types.DataType objet ou une chaîne de type au format DDL. |
barrier |
bool, facultatif, false par défaut | Utilisez l’exécution du mode barrière, ce qui garantit que tous les travailleurs Python au cours de l’étape seront lancés simultanément. |
profile |
ResourceProfile, facultatif | ResourceProfile facultatif à utiliser pour mapInPandas. |
Retours
DataFrame
Exemples
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)]