Thanks to visit codestin.com
Credit goes to github.com

Skip to content

[FEA] Reusable filtered joins in Java for semi/anti joins #24144

Description

@rishic3

Is your feature request related to a problem? Please describe.

cudf-spark would like to be able to cache and reuse broadcast hash builds across stream batches. Currently the Java APIs for left semi/anti joins construct a filtered join for each call.

Describe the solution you'd like

We can wrap the libcudf::filtered_join in Java/JNI, and add Table.leftSemiJoinGatherMap and Table.leftAntiJoinGatherMap APIs that accept the reusable FilteredJoin object. This would closely follow what has been done for HashJoin and DistinctHashJoin.

This request just concerns equi-joins, additional residual predicates would be out of scope.

Describe alternatives you've considered

Reusable semi/anti joins can be emulated with a reusable HashJoin to perform an inner join, and turning the result into a semi/anti gather maps, at the cost of enormous intermediate gather maps if there are many duplicates.

Additional context

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    JavaAffects Java cuDF API.feature requestNew feature or requestimprovementImprovement / enhancement to an existing function

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions