Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Mapuje iterátor dávek v aktuálním datovém rámci pomocí Python nativní funkce, která se provádí na pyarrow.RecordBatch jako vstup i výstup a vrátí výsledek jako datový rámec.
Syntaxe
mapInArrow(func: "ArrowMapIterFunction", schema: Union[StructType, str], barrier: bool = False, profile: Optional[ResourceProfile] = None)
Parametry
| Parameter | Typ | Description |
|---|---|---|
func |
funkce | nativní funkce Python, která přebírá iterátor pyarrow.RecordBatchs a vypíše iterátor pyarrow.RecordBatchs. |
schema |
Datový typ nebo str | návratový func typ v PySpark. Hodnota může být buď objekt, pyspark.sql.types.DataType nebo řetězec typu formátovaný DDL. |
barrier |
bool, optional, default False | Používejte provádění režimu bariéry a zajistěte, aby se všechny Python pracovní procesy ve fázi spouštěly souběžně. |
profile |
ResourceProfile, volitelné | Volitelný resourceProfile, který se má použít pro mapInArrow. |
Návraty
DataFrame
Příklady
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)]