Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Mapeia um iterador de lotes no DataFrame atual usando uma função nativa Python executada no Pandas DataFrames como entrada e saída e retorna o resultado como um DataFrame.
Sintaxe
mapInPandas(func: "PandasMapIterFunction", schema: Union[StructType, str], barrier: bool = False, profile: Optional[ResourceProfile] = None)
Parâmetros
| Parâmetro | Tipo | Descrição |
|---|---|---|
func |
função | uma função nativa Python que usa um iterador de pandas.DataFrames e gera um iterador de pandas.DataFrames. |
schema |
DataType ou str | o tipo de retorno do func PySpark. O valor pode ser um pyspark.sql.types.DataType objeto ou uma cadeia de caracteres de tipo formatada em DDL. |
barrier |
bool, opcional, false padrão | Use a execução do modo de barreira, garantindo que todos os Python trabalhadores no estágio sejam iniciados simultaneamente. |
profile |
ResourceProfile, opcional | O ResourceProfile opcional a ser usado para mapInPandas. |
Devoluções
DataFrame
Exemplos
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)]