Files
Alessandro MolinaandRaúl Cumplido e0ab40d379 GH-41692: [Python] Improve substrait extended expressions support (#41693)
Addresses some missing features and usability issues when using PyArrow
with Substrait ExtendedExpressions
* GitHub Issue: #41692

- [x] Allow passing `BoundExpressions` for `Scanner(columns=X)` instead
of a dict of expressions.
- [x] Allow passing `BoundExpressions` for `Scanner(filter=X)` so that
user doesn't have to distinguish between `Expression` and
`BoundExpressions` and can always just use
`pyarrow.substrait.deserialize_expressions`
- [x] Allow decoding `pyarrow.BoundExpressions` directly from
`protobuf.Message`, thus allowing to use substrait-python objects.
- [x] Return `memoryview` from methods encoding substrait, so that those
can be directly passed to substrait-python (or more in general other
python libraries) without a copy being involved.
- [x] Allow decoding messages from `memoryview` so that the output of
encoding functions can be sent back to dencoding functions.
- [x] Allow to encode and decode schemas from substrait 
- [x] When encoding schemas return the extension types required for a
substrait consumer to decode the schema
- [x] Handle arrow extension types when decoding a schema
- [x] Update docstrings and documentation

---------

Co-authored-by: Raúl Cumplido <raulcumplido@gmail.com>
2024-10-16 14:58:37 +02:00

42 lines
1.4 KiB
ReStructuredText

.. Licensed to the Apache Software Foundation (ASF) under one
.. or more contributor license agreements. See the NOTICE file
.. distributed with this work for additional information
.. regarding copyright ownership. The ASF licenses this file
.. to you under the Apache License, Version 2.0 (the
.. "License"); you may not use this file except in compliance
.. with the License. You may obtain a copy of the License at
.. http://www.apache.org/licenses/LICENSE-2.0
.. Unless required by applicable law or agreed to in writing,
.. software distributed under the License is distributed on an
.. "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
.. KIND, either express or implied. See the License for the
.. specific language governing permissions and limitations
.. under the License.
.. _integration:
********************
PyArrow Integrations
********************
Arrow is designed to be both a framework and an interchange format.
Developers can use Arrow to exchange data between various
technologies and languages without incurring in any extra cost of
marshalling/unmarshalling the data. The Arrow bindings and Arrow
native libraries on the various platforms will all understand Arrow data
natively without the need to decode it.
This allows to easily integrate PyArrow with other languages and technologies.
.. toctree::
:maxdepth: 2
integration/substrait
integration/python_r
integration/python_java
integration/extending
integration/cuda