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 pyarrow.RecordBatch como entrada y salida, y devuelve el resultado como dataFrame.
Sintaxis
mapInArrow(func: "ArrowMapIterFunction", 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 pyarrow.RecordBatchs y genera un iterador de pyarrow.RecordBatchs. |
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 mapInArrow. |
Devoluciones
DataFrame
Ejemplos
import pyarrow as pa
df = spark.createDataFrame([(1, 21), (2, 30)], ("id", "age"))
def filter_func(iterator):
for batch in iterator:
pdf = batch.to_pandas()
yield pa.RecordBatch.from_pandas(pdf[pdf.id == 1])
df.mapInArrow(filter_func, df.schema).show()
# +---+---+
# | id|age|
# +---+---+
# | 1| 21|
# +---+---+
df.mapInArrow(filter_func, df.schema, barrier=True).collect()
# [Row(id=1, age=21)]