mapInArrow

Memetakan iterator batch dalam DataFrame saat ini menggunakan fungsi asli Python yang dilakukan pada pyarrow.RecordBatchs baik sebagai input dan output, dan mengembalikan hasilnya sebagai DataFrame.

Sintaksis

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

Parameter-parameternya

Parameter Tipe Deskripsi
func fungsi fungsi asli Python yang mengambil iterator pyarrow.RecordBatchs, dan menghasilkan iterator pyarrow.RecordBatchs.
schema DataType atau str jenis func pengembalian dalam PySpark. Nilai dapat berupa pyspark.sql.types.DataType objek atau string jenis berformat DDL.
barrier bool, opsional, default False Gunakan eksekusi mode penghalang, memastikan bahwa semua pekerja Python dalam tahap akan diluncurkan secara bersamaan.
profile ResourceProfile, opsional ResourceProfile opsional yang akan digunakan untuk mapInArrow.

Pengembalian Barang

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