Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Asigna un iterador de lotes en el DataFrame actual mediante una función nativa de Python que se realiza en dataFrames de Pandas como entrada y salida y devuelve el resultado como dataframe.
Sintaxis
mapInPandas(func: "PandasMapIterFunction", schema: Union[StructType, str], barrier: bool = False, profile: Optional[ResourceProfile] = None)
Parámetros
| Parámetro | Tipo | Descripción |
|---|---|---|
func |
function | una función nativa Python que toma un iterador de pandas.DataFrames y genera un iterador de pandas.DataFrames. |
schema |
DataType o str | el tipo de valor devuelto de func en PySpark. El valor puede ser un pyspark.sql.types.DataType objeto o una cadena de tipo con formato DDL. |
barrier |
bool, opcional, false predeterminado | Use la ejecución del modo de barrera, asegurándose de que todos los Python trabajadores de la fase se iniciarán simultáneamente. |
profile |
ResourceProfile, opcional | ResourceProfile opcional que se usará para mapInPandas. |
Devoluciones
DataFrame
Ejemplos
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)]