Skip to main content
Version: Python

proxy

The proxy method creates a new PartitionedTableProxy from the provided PartitionedTable.

A PartitionedTableProxy is a table operation proxy object for the underlying PartitionedTable. The PartitionedTableProxy gives users access to a variety of Deephaven table operations that are not available to a PartitionedTable. When a user has made all the desired changes to the PartitionedTableProxy, they can use the target attribute to return the underlying PartitionedTable with the changes applied.

A query can achieve the same results by using either transform or a partitioned table proxy. Proxy objects provide convenience by making it simpler to apply transformations to a partitioned table, but with less control.

Syntax

PartitionedTable.proxy(
require_matching_keys: bool = True,
sanity_check_joins: bool = True
) -> PartitionedTableProxy

Parameters

ParameterTypeDescription
require_matching_keysbool

Whether to ensure that both PartitionedTables have all the same keys present when an operation uses this PartitionedTable and another PartitionedTable as inputs for a partitioned_transform(). The default is True.

sanity_check_joinsbool

Whether to check that for proxied join operations, a given join key only occurs in exactly one constituent table of the underlying PartitionedTable. If the other table argument is also a PartitionedTableProxy, its constituents will be subjected to this sanity check.

Returns

A PartitionedTableProxy.

Available methods

The following methods are available to a PartitionedTableProxy:

note

The following links are for the Table version of each of these methods. The PartitionedTableProxy version of each method is identical, except that it returns a PartitionedTableProxy instead of a Table.

Example

The following example shows how a partitioned table proxy can be used to apply standard table operations to every constituent of a partitioned table. The example uses reverse to reverse the ordering of the original table.

from deephaven import empty_table

source = empty_table(10).update(["Key = (i % 2 == 0) ? `X` : `Y`", "Value = i"])
partitioned_table = source.partition_by(["Key"])

pt_proxy = partitioned_table.proxy()

result = source.reverse()
proxy_reversed = pt_proxy.reverse()
result_from_proxy = proxy_reversed.target.merge()