Skip to content

Native approx_top_k functions: audit the frequent-items sketch against Java and implement #7400

Open

Description

@andygrove

What is the problem the feature request solves?

Part of #7397.

Spark 4.1+ provides approx_top_k, approx_top_k_accumulate, approx_top_k_combine and approx_top_k_estimate, built on the DataSketches frequent-items sketch. None of them run natively in Comet. The crate's frequencies feature provides the sketch.

Describe the potential solution

  1. Score the family with suggest-native-expression first.
  2. Audit the crate's frequencies feature against DataSketches-Java 6.2.0 using committed fixtures. The item type matters here more than in the other families: Spark supports several item types, and each has its own item serialization in the sketch bytes, so check each one Spark accepts rather than only strings. Also check tie-breaking and the order of returned items, the error bounds, and how Spark derives the maximum map size from its arguments.
  3. Implement the serde and native functions once the audit shows byte parity for every supported item type, opt-in until then. Fall back for any item type that is not covered.
  4. Add SQL file tests, including a Spark-produced sketch column read by Comet and the reverse.
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

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions