Skip to content

Commit 90a6a8b

Browse files
committed
feat: add register_view method to SessionContext for DataFrame registration
1 parent f594b46 commit 90a6a8b

File tree

2 files changed

+13
-4
lines changed

2 files changed

+13
-4
lines changed

python/datafusion/context.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -704,6 +704,18 @@ def from_polars(self, data: polars.DataFrame, name: str | None = None) -> DataFr
704704
"""
705705
return DataFrame(self.ctx.from_polars(data, name))
706706

707+
# https://github.com/apache/datafusion-python/pull/1016#discussion_r1983239116
708+
# is the discussion on how we arrived at adding register_view
709+
def register_view(self, name: str, df: DataFrame):
710+
"""Register a :py:class: `~datafusion.detaframe.DataFrame` as a view.
711+
712+
Args:
713+
name (str): The name to register the view under.
714+
df (DataFrame): The DataFrame to be converted into a view and registered.
715+
"""
716+
view = df.into_view()
717+
self.ctx.register_table(name, view)
718+
707719
def register_table(self, name: str, table: Table) -> None:
708720
"""Register a :py:class: `~datafusion.catalog.Table` as a table.
709721

python/tests/test_view.py

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,11 +27,8 @@ def test_register_filtered_dataframe():
2727
df = ctx.from_pydict(data, "my_table")
2828

2929
df_filtered = df.filter(col("a") > literal(2))
30-
view = df_filtered.into_view()
3130

32-
assert view.kind == "view"
33-
34-
ctx.register_table("view1", view)
31+
ctx.register_view("view1", df_filtered)
3532

3633
df_view = ctx.sql("SELECT * FROM view1")
3734

0 commit comments

Comments
 (0)