diff --git a/sql/core/src/main/scala/org/apache/spark/sql/expressions/Aggregator.scala b/sql/core/src/main/scala/org/apache/spark/sql/expressions/Aggregator.scala
index baae9dd2d5e3eac8322964735ea78b58bf22f673..51179a528c50337a5841b5f7542e8b656eebacd5 100644
--- a/sql/core/src/main/scala/org/apache/spark/sql/expressions/Aggregator.scala
+++ b/sql/core/src/main/scala/org/apache/spark/sql/expressions/Aggregator.scala
@@ -17,12 +17,14 @@
 
 package org.apache.spark.sql.expressions
 
+import org.apache.spark.annotation.Experimental
 import org.apache.spark.sql.{Dataset, Encoder, TypedColumn}
 import org.apache.spark.sql.catalyst.encoders.encoderFor
 import org.apache.spark.sql.catalyst.expressions.aggregate.{AggregateExpression, Complete}
 import org.apache.spark.sql.execution.aggregate.TypedAggregateExpression
 
 /**
+ * :: Experimental ::
  * 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.
  *
@@ -48,6 +50,7 @@ import org.apache.spark.sql.execution.aggregate.TypedAggregateExpression
  * @tparam OUT The type of the final output result.
  * @since 1.6.0
  */
+@Experimental
 abstract class Aggregator[-IN, BUF, OUT] extends Serializable {
 
   /**