mapInArrow

pyarrow.RecordBatch に対して入力と出力の両方で実行され、結果を DataFrame として返すPythonネイティブ関数を使用して、現在の DataFrame 内のバッチの反復子をマップします。

構文

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

パラメーター

パラメーター タイプ 説明
func 関数 pyarrow.RecordBatchs の反復子を受け取り、pyarrow.RecordBatch の反復子を出力するPythonネイティブ関数。
schema DataType または str PySpark の func の戻り値の型。 値には、 pyspark.sql.types.DataType オブジェクトまたは DDL 形式の型文字列のいずれかを指定できます。
barrier bool、省略可能、既定の False バリア モードの実行を使用して、ステージ内のすべてのPythonワーカーが同時に起動されるようにします。
profile ResourceProfile、省略可能 mapInArrow に使用する省略可能な ResourceProfile。

返品

DataFrame

例示

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