mapInArrow

Wijst een iterator van batches in het huidige DataFrame toe met behulp van een Python systeemeigen functie die wordt uitgevoerd op pyarrow.RecordBatchs zowel als invoer en uitvoer, en retourneert het resultaat als een DataFrame.

Syntaxis

mapInArrow(func: "ArrowMapIterFunction", schema: Union[StructType, str], barrier: bool = False, profile: Optional[ResourceProfile] = None)

Parameterwaarden

Kenmerk Typ Beschrijving
func function een Python systeemeigen functie die een iterator van pyarrow.RecordBatchs gebruikt en een iterator uitvoert van pyarrow.RecordBatchs.
schema DataType of str het retourtype van de func in PySpark. De waarde kan een pyspark.sql.types.DataType object of een tekenreeks met DDL-indeling zijn.
barrier bool, optioneel, standaard false Gebruik de uitvoering van de barrièremodus om ervoor te zorgen dat alle Python werknemers in de fase gelijktijdig worden gestart.
profile ResourceProfile, optioneel Het optionele ResourceProfile dat moet worden gebruikt voor mapInArrow.

Retouren

DataFrame

Examples

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)]