for_exec_def_arrow
for_exec_def_arrow(exec_def: ExecutionDefinition, label_overrides: Optional[LabelOverrides], grand_totals_position: Literal['pinnedBottom', 'pinnedTop', 'bottom', 'top'], on_execution_submitted: Optional[Callable[[Execution], None]]) -> tuple[pandas.DataFrame, DataFrameMetadata]
Creates a DataFrame from an execution definition using the Arrow IPC binary format.
Compared to for_exec_def(), this skips the page-by-page JSON deserialization and converts the result in one shot via pyarrow, which is significantly faster for large results.
Technical Arrow parameters (self_destruct, types_mapper, custom_mapping) are
configured on the factory via ArrowConfig rather than per call. Pass
arrow_config=ArrowConfig(...) when constructing DataFrameFactory.
Note: unlike :meth:for_exec_def, this method does not fetch result_cache_metadata
from the server. <a href="/1.64/pandas/result_convertor/dataframemetadata/">DataFrameMetadata</a> does not carry a cache-metadata field today, so
the returned tuple is structurally identical; if that field is added in future both paths
should be kept in sync.
Requires pyarrow to be installed (pip install gooddata-pandas[arrow]).
Parameters
| name | type | description |
|---|---|---|
| exec_def | ExecutionDefinition | Execution definition. |
| label_overrides | Optional[LabelOverrides] | Label overrides for metrics and attributes. |
| grand_totals_position | Literal['pinnedBottom', 'pinnedTop', 'bottom', 'top'] | Position where grand total rows should be placed. ``"pinnedBottom"`` and ``"bottom"`` keep totals at the end (default). ``"pinnedTop"`` and ``"top"`` move grand total rows to the beginning of the DataFrame. Subtotal rows are not repositioned. Defaults to ``"bottom"``. |
| on_execution_submitted | Optional[Callable[[Execution], None]] | Callback fired after the execution is submitted to the backend. |
Returns
| type | description |
|---|---|
| tuple[pandas.DataFrame, DataFrameMetadata] | Tuple[pandas.DataFrame, DataFrameMetadata] |