You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@datasketches.apache.org by jm...@apache.org on 2025/01/06 23:06:53 UTC
(datasketches-spark) 03/03: Remove now-deleted wrapper from codegen for expressions
This is an automated email from the ASF dual-hosted git repository.
jmalkin pushed a commit to branch cleanup
in repository https://gitbox.apache.org/repos/asf/datasketches-spark.git
commit f6c79bcea4027a3651373f4c74199fd0fb3af8e1
Author: Jon <jm...@apache.org>
AuthorDate: Mon Jan 6 15:06:35 2025 -0800
Remove now-deleted wrapper from codegen for expressions
---
.../scala/org/apache/spark/sql/expressions/KllExpressions.scala | 6 +++---
.../scala/org/apache/spark/sql/types/KllDoublesSketchType.scala | 9 +++++++++
2 files changed, 12 insertions(+), 3 deletions(-)
diff --git a/src/main/scala/org/apache/spark/sql/expressions/KllExpressions.scala b/src/main/scala/org/apache/spark/sql/expressions/KllExpressions.scala
index df2aa2f..745261b 100644
--- a/src/main/scala/org/apache/spark/sql/expressions/KllExpressions.scala
+++ b/src/main/scala/org/apache/spark/sql/expressions/KllExpressions.scala
@@ -67,7 +67,7 @@ case class KllGetMin(child: Expression)
val code =
s"""
|${childEval.code}
- |final org.apache.datasketches.kll.KllDoublesSketch $sketch = org.apache.spark.sql.types.KllDoublesSketchWrapper.wrapAsReadOnlySketch(${childEval.value});
+ |final org.apache.datasketches.kll.KllDoublesSketch $sketch = org.apache.spark.sql.types.KllDoublesSketchType.wrap(${childEval.value});
|final double ${ev.value} = $sketch.getMinItem();
""".stripMargin
ev.copy(code = CodeBlock(Seq(code), Seq.empty), isNull = childEval.isNull)
@@ -117,7 +117,7 @@ case class KllGetMax(child: Expression)
val code =
s"""
|${childEval.code}
- |final org.apache.datasketches.kll.KllDoublesSketch $sketch = org.apache.spark.sql.types.KllDoublesSketchWrapper.wrapAsReadOnlySketch(${childEval.value});
+ |final org.apache.datasketches.kll.KllDoublesSketch $sketch = org.apache.spark.sql.types.KllDoublesSketchType.wrap(${childEval.value});
|final double ${ev.value} = $sketch.getMaxItem();
""".stripMargin
ev.copy(code = CodeBlock(Seq(code), Seq.empty), isNull = childEval.isNull)
@@ -195,7 +195,7 @@ case class KllGetPmfCdf(left: Expression,
| ${ev.isNull} = true;
|} else {
| QuantileSearchCriteria searchCriteria = ${if (isInclusive) "QuantileSearchCriteria.INCLUSIVE" else "QuantileSearchCriteria.EXCLUSIVE"};
- | final org.apache.datasketches.kll.KllDoublesSketch $sketch = org.apache.spark.sql.types.KllDoublesSketchWrapper.wrapAsReadOnlySketch(${sketchEval.value});
+ | final org.apache.datasketches.kll.KllDoublesSketch $sketch = org.apache.spark.sql.types.KllDoublesSketchType.wrap(${sketchEval.value});
| final double[] splitPoints = ((org.apache.spark.sql.catalyst.util.GenericArrayData)${splitPointsEval.value}).toDoubleArray();
| final double[] result = ${if (isPmf) s"$sketch.getPMF(splitPoints, searchCriteria)" else s"$sketch.getCDF(splitPoints, searchCriteria)"};
| GenericArrayData ${ev.value} = new GenericArrayData(result);
diff --git a/src/main/scala/org/apache/spark/sql/types/KllDoublesSketchType.scala b/src/main/scala/org/apache/spark/sql/types/KllDoublesSketchType.scala
index 790cd6e..fda471d 100644
--- a/src/main/scala/org/apache/spark/sql/types/KllDoublesSketchType.scala
+++ b/src/main/scala/org/apache/spark/sql/types/KllDoublesSketchType.scala
@@ -49,4 +49,13 @@ case object KllDoublesSketchType extends KllDoublesSketchType {
deserialize(bytes)
}
})
+
+ // non-udf version
+ val wrap = ((bytes: Array[Byte]) => {
+ if (bytes == null) {
+ null
+ } else {
+ deserialize(bytes)
+ }
+ })
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@datasketches.apache.org
For additional commands, e-mail: commits-help@datasketches.apache.org