collect() merges every batch into one, so the next step sees the whole frame at once. Memory grows
with the data - keep it for small frames, or bound it with
batchSize().
Examples
Batching
Description
Documentation
Batch size decides how many rows travel through the pipeline together.
Code
<?php
declare(strict_types=1);
use function Flow\ETL\DSL\{data_frame, from_array, to_output};
require __DIR__ . '/vendor/autoload.php';
data_frame()
->read(from_array([
['id' => 1, 'name' => 'John'],
['id' => 2, 'name' => 'Doe'],
['id' => 3, 'name' => 'Jane'],
['id' => 4, 'name' => 'Smith'],
['id' => 5, 'name' => 'Alice'],
]))
->collect() // alternatively we can also use ->batchSize(-1)
->write(to_output(truncate: false))
->run();