Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Mappar en iterator av batchar i den aktuella DataFrame med hjälp av en Python intern funktion som utförs på pyarrow.RecordBatchs både som indata och utdata och returnerar resultatet som en DataFrame.
Syntax
mapInArrow(func: "ArrowMapIterFunction", schema: Union[StructType, str], barrier: bool = False, profile: Optional[ResourceProfile] = None)
Parameters
| Parameter | Type | Beskrivning |
|---|---|---|
func |
function | en Python intern funktion som tar en iterator av pyarrow.RecordBatchs och matar ut en iterator av pyarrow.RecordBatchs. |
schema |
DataType eller str | returtypen för func i PySpark. Värdet kan vara antingen ett pyspark.sql.types.DataType objekt eller en DDL-formaterad typsträng. |
barrier |
bool, valfritt, standard falskt | Använd körning av barriärläge så att alla Python arbetare i fasen startas samtidigt. |
profile |
ResourceProfile, valfritt | Den valfria ResourceProfile som ska användas för mapInArrow. |
Retur
DataFrame
Exempel
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)]