Registering Views¶
You can use the context’s register_view
method to register a DataFrame as a view
from datafusion import SessionContext, col, literal
# Create a DataFusion context
ctx = SessionContext()
# Create sample data
data = {"a": [1, 2, 3, 4, 5], "b": [10, 20, 30, 40, 50]}
# Create a DataFrame from the dictionary
df = ctx.from_pydict(data, "my_table")
# Filter the DataFrame (for example, keep rows where a > 2)
df_filtered = df.filter(col("a") > literal(2))
# Register the dataframe as a view with the context
ctx.register_view("view1", df_filtered)
# Now run a SQL query against the registered view
df_view = ctx.sql("SELECT * FROM view1")
# Collect the results
results = df_view.collect()
# Convert results to a list of dictionaries for display
result_dicts = [batch.to_pydict() for batch in results]
print(result_dicts)
This will output:
[{'a': [3, 4, 5], 'b': [30, 40, 50]}]