Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Ordnet einen Iterator von Batches im aktuellen DataFrame mithilfe einer Python systemeigenen Funktion zu, die für pyarrow.RecordBatchs sowohl als Eingabe als auch als Ausgabe ausgeführt wird, und gibt das Ergebnis als DataFrame zurück.
Syntax
mapInArrow(func: "ArrowMapIterFunction", schema: Union[StructType, str], barrier: bool = False, profile: Optional[ResourceProfile] = None)
Parameter
| Parameter | Typ | Beschreibung |
|---|---|---|
func |
Funktion | eine Python systemeigene Funktion, die einen Iterator von pyarrow.RecordBatchs verwendet, und gibt einen Iterator von pyarrow.RecordBatchs aus. |
schema |
Datentyp oder str | der Rückgabetyp des func PySpark. Der Wert kann ein pyspark.sql.types.DataType Objekt oder eine DDL-formatierte Typzeichenfolge sein. |
barrier |
bool, optional, default False | Verwenden Sie die Ausführung des Barrierenmodus, um sicherzustellen, dass alle Python Worker in der Phase gleichzeitig gestartet werden. |
profile |
ResourceProfile, optional | Das optionale ResourceProfile,das für mapInArrow verwendet werden soll. |
Rückkehr
DataFrame
Beispiele
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)]