chore: import upstream snapshot with attribution
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
"""Query and display the first 10 rows of a recording."""
|
||||
|
||||
import atexit
|
||||
import math
|
||||
import os
|
||||
import tempfile
|
||||
|
||||
from datafusion import col
|
||||
|
||||
import rerun as rr
|
||||
|
||||
# should be a cross-platform way to generate a rrd path.
|
||||
RRD_PATH = tempfile.mktemp(suffix=".rrd")
|
||||
atexit.register(
|
||||
lambda: os.unlink(RRD_PATH) if os.path.exists(RRD_PATH) else None
|
||||
)
|
||||
|
||||
# region: setup
|
||||
# create some data
|
||||
times = list(range(64))
|
||||
scalars = [math.sin(t / 10.0) for t in times]
|
||||
|
||||
# log the data to a temporary recording
|
||||
with rr.RecordingStream("rerun_example_dataframe_query") as rec:
|
||||
rec.save(RRD_PATH)
|
||||
rec.send_columns(
|
||||
"/data",
|
||||
indexes=[rr.TimeColumn("step", sequence=times)],
|
||||
columns=rr.Scalars.columns(scalars=scalars),
|
||||
)
|
||||
# endregion: setup
|
||||
|
||||
|
||||
# region: query
|
||||
# load the demo recording in a temporary catalog
|
||||
with rr.server.Server(datasets={"dataset": [RRD_PATH]}) as server:
|
||||
# obtain a dataset from the catalog
|
||||
dataset = server.client().get_dataset("dataset")
|
||||
|
||||
# (optional) filter interesting data
|
||||
dataset_view = dataset.filter_contents("/data")
|
||||
|
||||
# obtain a DataFusion dataframe
|
||||
df = dataset_view.reader(index="step")
|
||||
|
||||
# (optional) filter rows using DataFusion expressions
|
||||
df = df.filter(col("/data:Scalars:scalars")[0] > 0.95)
|
||||
|
||||
# execute the query
|
||||
print(df) # or convert to Pandas, Polars, PyArrow, etc.
|
||||
# endregion: query
|
||||
Reference in New Issue
Block a user