From a42507e3c5bec708e5182245ed23cd103b661f67 Mon Sep 17 00:00:00 2001 From: Matthew Roeschke <10647082+mroeschke@users.noreply.github.com> Date: Wed, 26 Nov 2025 17:23:00 -0800 Subject: [PATCH 1/3] Use .plc_column in join.py --- python/cudf/cudf/core/join/join.py | 22 ++++++---------------- 1 file changed, 6 insertions(+), 16 deletions(-) diff --git a/python/cudf/cudf/core/join/join.py b/python/cudf/cudf/core/join/join.py index 338e4680a29..4638e045b0a 100644 --- a/python/cudf/cudf/core/join/join.py +++ b/python/cudf/cudf/core/join/join.py @@ -42,8 +42,8 @@ def _joiner( raise ValueError(f"Invalid join type {how}") left_rows, right_rows = join_func( - plc.Table([col.to_pylibcudf(mode="read") for col in lhs]), - plc.Table([col.to_pylibcudf(mode="read") for col in rhs]), + plc.Table([col.plc_column for col in lhs]), + plc.Table([col.plc_column for col in rhs]), plc.types.NullEquality.EQUAL, ) return ( @@ -325,18 +325,8 @@ def perform_merge(self) -> DataFrame: if self.how == "cross": lib_table = plc.join.cross_join( - plc.Table( - [ - col.to_pylibcudf(mode="read") - for col in self.lhs._columns - ] - ), - plc.Table( - [ - col.to_pylibcudf(mode="read") - for col in self.rhs._columns - ] - ), + plc.Table([col.plc_column for col in self.lhs._columns]), + plc.Table([col.plc_column for col in self.rhs._columns]), ) columns = lib_table.columns() left_names, right_names = ( @@ -689,8 +679,8 @@ def _joiner( # type: ignore[override] return ColumnBase.from_pylibcudf( join_func( - plc.Table([col.to_pylibcudf(mode="read") for col in lhs]), - plc.Table([col.to_pylibcudf(mode="read") for col in rhs]), + plc.Table([col.plc_column for col in lhs]), + plc.Table([col.plc_column for col in rhs]), plc.types.NullEquality.EQUAL, ) ), None From 9d922e34b0e06684f0399cf24946a97db66383cc Mon Sep 17 00:00:00 2001 From: Matthew Roeschke <10647082+mroeschke@users.noreply.github.com> Date: Wed, 26 Nov 2025 17:33:20 -0800 Subject: [PATCH 2/3] Use .plc_column in stream_compaction --- python/cudf/cudf/core/_internals/stream_compaction.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/python/cudf/cudf/core/_internals/stream_compaction.py b/python/cudf/cudf/core/_internals/stream_compaction.py index b08fa7e0315..9f66d232dd5 100644 --- a/python/cudf/cudf/core/_internals/stream_compaction.py +++ b/python/cudf/cudf/core/_internals/stream_compaction.py @@ -49,7 +49,7 @@ def drop_nulls( keep_threshold = len(keys) plc_table = plc.stream_compaction.drop_nulls( - plc.Table([col.to_pylibcudf(mode="read") for col in columns]), + plc.Table([col.plc_column for col in columns]), keys, keep_threshold, ) @@ -73,8 +73,8 @@ def apply_boolean_mask( columns obtained from applying mask """ plc_table = plc.stream_compaction.apply_boolean_mask( - plc.Table([col.to_pylibcudf(mode="read") for col in columns]), - boolean_mask.to_pylibcudf(mode="read"), + plc.Table([col.plc_column for col in columns]), + boolean_mask.plc_column, ) return plc_table.columns() @@ -110,7 +110,7 @@ def drop_duplicates( raise ValueError('keep must be either "first", "last" or False') plc_table = plc.stream_compaction.stable_distinct( - plc.Table([col.to_pylibcudf(mode="read") for col in columns]), + plc.Table([col.plc_column for col in columns]), keys if keys is not None else list(range(len(columns))), keep_option, plc.types.NullEquality.EQUAL From 53ece96908335273671afb12abe389949d6f0944 Mon Sep 17 00:00:00 2001 From: Matthew Roeschke <10647082+mroeschke@users.noreply.github.com> Date: Wed, 26 Nov 2025 17:40:31 -0800 Subject: [PATCH 3/3] Use .plc_column in sorting.py --- python/cudf/cudf/core/_internals/sorting.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/python/cudf/cudf/core/_internals/sorting.py b/python/cudf/cudf/core/_internals/sorting.py index a9f71b23b61..0652dbb99a1 100644 --- a/python/cudf/cudf/core/_internals/sorting.py +++ b/python/cudf/cudf/core/_internals/sorting.py @@ -46,7 +46,7 @@ def is_sorted( """ column_order, null_precedence = ordering(ascending, na_position) return plc.sorting.is_sorted( - plc.Table([col.to_pylibcudf(mode="read") for col in source_columns]), + plc.Table([col.plc_column for col in source_columns]), column_order, null_precedence, ) @@ -123,7 +123,7 @@ def order_by( ) return func( plc.Table( - [col.to_pylibcudf(mode="read") for col in columns_from_table], + [col.plc_column for col in columns_from_table], ), column_order, null_precedence, @@ -168,8 +168,8 @@ def sort_by_key( plc.sorting.stable_sort_by_key if stable else plc.sorting.sort_by_key ) return func( - plc.Table([col.to_pylibcudf(mode="read") for col in values]), - plc.Table([col.to_pylibcudf(mode="read") for col in keys]), + plc.Table([col.plc_column for col in values]), + plc.Table([col.plc_column for col in keys]), column_order, null_precedence, ).columns() @@ -207,8 +207,8 @@ def search_sorted( "lower_bound" if side == "left" else "upper_bound", ) return func( - plc.Table([col.to_pylibcudf(mode="read") for col in source]), - plc.Table([col.to_pylibcudf(mode="read") for col in values]), + plc.Table([col.plc_column for col in source]), + plc.Table([col.plc_column for col in values]), column_order, null_precedence, )