huaxingao commented on a change in pull request #28087: 
[SPARK-31319][SQL][DOCS] Document UDFs/UDAFs in SQL Reference
URL: https://github.com/apache/spark/pull/28087#discussion_r401974890
 
 

 ##########
 File path: docs/sql-ref-functions-udf-aggregate.md
 ##########
 @@ -21,17 +21,79 @@ license: |
 
 ### Description
 
-User-Defined Aggregate Functions (UDAFs) are user-programmable routines that 
act on multiple rows at once and return a single aggregated value as a result. 
This documentation contains examples that demonstrate how to define and 
register UDAFs in Scala and invoke them in Spark SQL.
+User-Defined Aggregate Functions (UDAFs) are user-programmable routines that 
act on multiple rows at once and return a single aggregated value as a result. 
This documentation lists the classes that are required for creating and 
registering UDAFs. It also contains examples that demonstrate how to define and 
register UDAFs in Scala and invoke them in Spark SQL.
+
+### org.apache.spark.sql.expressions.Aggregator[-IN, BUF, OUT]
+
+A base class for user-defined aggregations, which can be used in Dataset 
operations to take all of the elements of a group and reduce them to a single 
value.
+- IN The input type for the aggregation.
+
+- BUF The type of the intermediate value of the reduction.
+
+- OUT The type of the final output result.
+
+<dl>
+  <dt><code><em>bufferEncoder: Encoder[BUF]</em></code></dt>
+  <dd>
+    Register a deterministic Java UDF(0-22) instance as user-defined function 
(UDF).
+  </dd>
+</dl>
+
+
+<dl>
+  <dt><code><em>finish(reduction: BUF): OUT</em></code></dt>
+  <dd>
+    Transform the output of the reduction.
+  </dd>
+</dl>
+
+<dl>
+  <dt><code><em>merge(b1: BUF, b2: BUF): BUF</em></code></dt>
+  <dd>
+    Merge two intermediate values.
+  </dd>
+</dl>
+
+<dl>
+  <dt><code><em>outputEncoder: Encoder[OUT]</em></code></dt>
+  <dd>
+    Specifies the Encoder for the final output value type.
+  </dd>
+</dl>
+
+<dl>
+  <dt><code><em>reduce(b: BUF, a: IN): BUF</em></code></dt>
+  <dd>
+    Combine two values to produce a new value. For performance, the function 
may modify b and return it instead of constructing new object for b.
+  </dd>
+</dl>
+
+<dl>
+  <dt><code><em>zero: BUF</em></code></dt>
+  <dd>
+    A zero value for this aggregation.
+  </dd>
+</dl>
+
+### org.apache.spark.sql.UDFRegistration
+
+Functions for registering user-defined functions. Use `SparkSession.udf` to 
access this: `spark.udf`
+
+<dl>
+  <dt><code><em>register(name: String, udf: UserDefinedFunction): 
UserDefinedFunction</em></code></dt>
+  <dd>
+    Registers a user-defined function (UDF).
+  </dd>
+</dl>
 
 ### Examples
 
 {% highlight sql %}
 
 // Define and register a UDAF to calculate the sum of product of two columns
 // Scala
-import org.apache.spark.sql.Encoder
 
 Review comment:
   I am confused with this import. My test works OK without it. 

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services

---------------------------------------------------------------------
To unsubscribe, e-mail: reviews-unsubscr...@spark.apache.org
For additional commands, e-mail: reviews-h...@spark.apache.org

Reply via email to