view
The view
method creates a new formula table that includes one column for each argument.
When using view
, the data being requested is not stored in memory. Rather, a formula is stored that is used to recalculate each cell every time it is accessed.
The syntax for the view
and select
methods is identical, as is the resulting table. view
is recommended when:
- the formula is fast to compute,
- only a small portion of the data is being accessed,
- cells are accessed very few times, or
- memory usage must be minimized.
When memory usage or computation needs to be reduced, consider using select
, update_view
, update
, or lazy_update
. These methods have different memory and computation expenses.
When using view
or update_view
, non-deterministic methods (e.g., random numbers, current time, or mutable structures) produce unstable results. Downstream operations on these results produce undefined behavior. Non-deterministic methods should use select
or update
instead.
Syntax
view(formulas: Union[str, Sequence[str]]) -> Table
Parameters
Parameter | Type | Description |
---|---|---|
formulas | Union[str, Sequence[str]] | Formulas to compute columns in the new table:
|
Returns
A new formula table that includes one column for each argument.
Examples
The following example returns only the column B
.
from deephaven import new_table
from deephaven.column import string_col, int_col
source = new_table(
[
string_col("A", ["The", "At", "Is", "On"]),
int_col("B", [1, 2, 3, 4]),
int_col("C", [5, 6, 7, 8]),
]
)
result = source.view(formulas=["B"])
- source
- result
In the following example, the new table contains source column A
(renamed as X
), and column B
.
from deephaven import new_table
from deephaven.column import string_col, int_col
source = new_table(
[
string_col("A", ["The", "At", "Is", "On"]),
int_col("B", [1, 2, 3, 4]),
int_col("C", [5, 6, 7, 8]),
]
)
result = source.view(formulas=["X = A", "B"])
- source
- result
The following example creates a table containing column A
, column B
(renamed as X
), and the square root of column C
(renamed as Y
). While no memory is used to store column Y
, the square root function is evaluated every time a cell in column Y
is accessed.
from deephaven import new_table
from deephaven.column import string_col, int_col
source = new_table(
[
string_col("A", ["The", "At", "Is", "On"]),
int_col("B", [1, 2, 3, 4]),
int_col("C", [5, 6, 7, 8]),
]
)
result = source.view(formulas=["A", "X = B", "Y = sqrt(C)"])
- source
- result