This is an automated email from the ASF dual-hosted git repository.
yao pushed a commit to branch branch-4.0
in repository https://gitbox.apache.org/repos/asf/spark.git
The following commit(s) were added to refs/heads/branch-4.0 by this push:
new 66064461768b [SPARK-52010] Do not generate API docs for internal
classes
66064461768b is described below
commit 66064461768b38d703b8b8d76ed544e92023b24e
Author: Wenchen Fan <[email protected]>
AuthorDate: Tue May 6 11:49:47 2025 +0800
[SPARK-52010] Do not generate API docs for internal classes
### What changes were proposed in this pull request?
While reviewing the API doc of 4.0 RC4, I found that there are some newly
added internal classes appear in the API doc. This PR fixes them.
### Why are the changes needed?
API doc should not include internal classes
### Does this PR introduce _any_ user-facing change?
no
### How was this patch tested?
N/A
### Was this patch authored or co-authored using generative AI tooling?
no
Closes #50797 from cloud-fan/api.
Authored-by: Wenchen Fan <[email protected]>
Signed-off-by: Kent Yao <[email protected]>
(cherry picked from commit 9f5ae883899ab72fb2bb8d2e6326c5ef81494250)
Signed-off-by: Kent Yao <[email protected]>
---
.../scala/org/apache/spark/util/SparkStringUtils.scala | 4 ++--
.../main/scala/org/apache/spark/util/SparkTestUtils.scala | 4 ++--
.../org/apache/spark/sql/avro/AvroDataToCatalyst.scala | 2 +-
.../org/apache/spark/sql/avro/CatalystDataToAvro.scala | 2 +-
.../scala/org/apache/spark/sql/avro/SchemaOfAvro.scala | 2 +-
.../org/apache/spark/kafka010/KafkaConfigUpdater.scala | 2 +-
.../spark/kafka010/KafkaDelegationTokenProvider.scala | 2 +-
.../org/apache/spark/kafka010/KafkaRedactionUtil.scala | 6 +++---
.../org/apache/spark/kafka010/KafkaTokenSparkConf.scala | 4 ++--
.../scala/org/apache/spark/kafka010/KafkaTokenUtil.scala | 12 ++++++------
project/SparkBuild.scala | 14 +++++++++++---
.../spark/sql/exceptions/SqlScriptingException.scala | 2 +-
.../scala/org/apache/spark/sql/jdbc/JdbcDialects.scala | 2 +-
13 files changed, 33 insertions(+), 25 deletions(-)
diff --git
a/common/utils/src/main/scala/org/apache/spark/util/SparkStringUtils.scala
b/common/utils/src/main/scala/org/apache/spark/util/SparkStringUtils.scala
index 6915f373b84e..9f58288ee266 100644
--- a/common/utils/src/main/scala/org/apache/spark/util/SparkStringUtils.scala
+++ b/common/utils/src/main/scala/org/apache/spark/util/SparkStringUtils.scala
@@ -16,11 +16,11 @@
*/
package org.apache.spark.util
-trait SparkStringUtils {
+private[spark] trait SparkStringUtils {
def stringToSeq(str: String): Seq[String] = {
import org.apache.spark.util.ArrayImplicits._
str.split(",").map(_.trim()).filter(_.nonEmpty).toImmutableArraySeq
}
}
-object SparkStringUtils extends SparkStringUtils
+private[spark] object SparkStringUtils extends SparkStringUtils
diff --git
a/common/utils/src/main/scala/org/apache/spark/util/SparkTestUtils.scala
b/common/utils/src/main/scala/org/apache/spark/util/SparkTestUtils.scala
index bcb2668d31e6..34b40a5a8890 100644
--- a/common/utils/src/main/scala/org/apache/spark/util/SparkTestUtils.scala
+++ b/common/utils/src/main/scala/org/apache/spark/util/SparkTestUtils.scala
@@ -25,7 +25,7 @@ import javax.tools.{JavaFileObject, SimpleJavaFileObject,
ToolProvider}
import scala.jdk.CollectionConverters._
-trait SparkTestUtils {
+private[spark] trait SparkTestUtils {
// Adapted from the JavaCompiler.java doc examples
private val SOURCE = JavaFileObject.Kind.SOURCE
@@ -103,4 +103,4 @@ trait SparkTestUtils {
}
-object SparkTestUtils extends SparkTestUtils
+private[spark] object SparkTestUtils extends SparkTestUtils
diff --git
a/connector/avro/src/main/scala/org/apache/spark/sql/avro/AvroDataToCatalyst.scala
b/connector/avro/src/main/scala/org/apache/spark/sql/avro/AvroDataToCatalyst.scala
index 62c185a91d85..c0b50e5cba48 100644
---
a/connector/avro/src/main/scala/org/apache/spark/sql/avro/AvroDataToCatalyst.scala
+++
b/connector/avro/src/main/scala/org/apache/spark/sql/avro/AvroDataToCatalyst.scala
@@ -30,7 +30,7 @@ import org.apache.spark.sql.catalyst.util.{FailFastMode,
ParseMode, PermissiveMo
import org.apache.spark.sql.errors.QueryCompilationErrors
import org.apache.spark.sql.types._
-private[sql] case class AvroDataToCatalyst(
+case class AvroDataToCatalyst(
child: Expression,
jsonFormatSchema: String,
options: Map[String, String])
diff --git
a/connector/avro/src/main/scala/org/apache/spark/sql/avro/CatalystDataToAvro.scala
b/connector/avro/src/main/scala/org/apache/spark/sql/avro/CatalystDataToAvro.scala
index 56ed117aef58..01daac1cfa6b 100644
---
a/connector/avro/src/main/scala/org/apache/spark/sql/avro/CatalystDataToAvro.scala
+++
b/connector/avro/src/main/scala/org/apache/spark/sql/avro/CatalystDataToAvro.scala
@@ -27,7 +27,7 @@ import org.apache.spark.sql.catalyst.expressions.{Expression,
UnaryExpression}
import org.apache.spark.sql.catalyst.expressions.codegen.{CodegenContext,
ExprCode}
import org.apache.spark.sql.types.{BinaryType, DataType}
-private[sql] case class CatalystDataToAvro(
+case class CatalystDataToAvro(
child: Expression,
jsonFormatSchema: Option[String]) extends UnaryExpression {
diff --git
a/connector/avro/src/main/scala/org/apache/spark/sql/avro/SchemaOfAvro.scala
b/connector/avro/src/main/scala/org/apache/spark/sql/avro/SchemaOfAvro.scala
index e062ad778106..362fc79a0f1b 100644
--- a/connector/avro/src/main/scala/org/apache/spark/sql/avro/SchemaOfAvro.scala
+++ b/connector/avro/src/main/scala/org/apache/spark/sql/avro/SchemaOfAvro.scala
@@ -25,7 +25,7 @@ import org.apache.spark.sql.catalyst.util.{FailFastMode,
ParseMode, PermissiveMo
import org.apache.spark.sql.errors.QueryCompilationErrors
import org.apache.spark.sql.types.{DataType, ObjectType, StringType}
-private[sql] case class SchemaOfAvro(
+case class SchemaOfAvro(
jsonFormatSchema: String,
options: Map[String, String])
extends LeafExpression with RuntimeReplaceable {
diff --git
a/connector/kafka-0-10-token-provider/src/main/scala/org/apache/spark/kafka010/KafkaConfigUpdater.scala
b/connector/kafka-0-10-token-provider/src/main/scala/org/apache/spark/kafka010/KafkaConfigUpdater.scala
index 8251c0c43d9e..17392f5a231d 100644
---
a/connector/kafka-0-10-token-provider/src/main/scala/org/apache/spark/kafka010/KafkaConfigUpdater.scala
+++
b/connector/kafka-0-10-token-provider/src/main/scala/org/apache/spark/kafka010/KafkaConfigUpdater.scala
@@ -30,7 +30,7 @@ import org.apache.spark.internal.Logging
/**
* Class to conveniently update Kafka config params, while logging the changes
*/
-private[spark] case class KafkaConfigUpdater(module: String, kafkaParams:
Map[String, Object])
+case class KafkaConfigUpdater(module: String, kafkaParams: Map[String, Object])
extends Logging {
private val map = new ju.HashMap[String, Object](kafkaParams.asJava)
diff --git
a/connector/kafka-0-10-token-provider/src/main/scala/org/apache/spark/kafka010/KafkaDelegationTokenProvider.scala
b/connector/kafka-0-10-token-provider/src/main/scala/org/apache/spark/kafka010/KafkaDelegationTokenProvider.scala
index 3616f93659fb..8acdd01a15ba 100644
---
a/connector/kafka-0-10-token-provider/src/main/scala/org/apache/spark/kafka010/KafkaDelegationTokenProvider.scala
+++
b/connector/kafka-0-10-token-provider/src/main/scala/org/apache/spark/kafka010/KafkaDelegationTokenProvider.scala
@@ -28,7 +28,7 @@ import org.apache.spark.internal.{Logging, MDC}
import org.apache.spark.internal.LogKeys.{CLUSTER_ID, SERVICE_NAME}
import org.apache.spark.security.HadoopDelegationTokenProvider
-private[spark] class KafkaDelegationTokenProvider
+class KafkaDelegationTokenProvider
extends HadoopDelegationTokenProvider with Logging {
override def serviceName: String = "kafka"
diff --git
a/connector/kafka-0-10-token-provider/src/main/scala/org/apache/spark/kafka010/KafkaRedactionUtil.scala
b/connector/kafka-0-10-token-provider/src/main/scala/org/apache/spark/kafka010/KafkaRedactionUtil.scala
index c552e469ab83..44c0b1cb32c9 100644
---
a/connector/kafka-0-10-token-provider/src/main/scala/org/apache/spark/kafka010/KafkaRedactionUtil.scala
+++
b/connector/kafka-0-10-token-provider/src/main/scala/org/apache/spark/kafka010/KafkaRedactionUtil.scala
@@ -24,8 +24,8 @@ import org.apache.spark.internal.Logging
import org.apache.spark.internal.config.SECRET_REDACTION_PATTERN
import org.apache.spark.util.Utils.{redact, REDACTION_REPLACEMENT_TEXT}
-private[spark] object KafkaRedactionUtil extends Logging {
- private[spark] def redactParams(params: Seq[(String, Object)]): Seq[(String,
String)] = {
+object KafkaRedactionUtil extends Logging {
+ def redactParams(params: Seq[(String, Object)]): Seq[(String, String)] = {
val redactionPattern = Some(Option(SparkEnv.get).map(_.conf)
.getOrElse(new SparkConf()).get(SECRET_REDACTION_PATTERN))
params.map { case (key, value) =>
@@ -42,7 +42,7 @@ private[spark] object KafkaRedactionUtil extends Logging {
}
}
- private[kafka010] def redactJaasParam(param: String): String = {
+ def redactJaasParam(param: String): String = {
if (param != null && !param.isEmpty) {
param.replaceAll("password=\".*\"",
s"""password="$REDACTION_REPLACEMENT_TEXT"""")
} else {
diff --git
a/connector/kafka-0-10-token-provider/src/main/scala/org/apache/spark/kafka010/KafkaTokenSparkConf.scala
b/connector/kafka-0-10-token-provider/src/main/scala/org/apache/spark/kafka010/KafkaTokenSparkConf.scala
index 21ba7b21ed9d..64cc2cba6b30 100644
---
a/connector/kafka-0-10-token-provider/src/main/scala/org/apache/spark/kafka010/KafkaTokenSparkConf.scala
+++
b/connector/kafka-0-10-token-provider/src/main/scala/org/apache/spark/kafka010/KafkaTokenSparkConf.scala
@@ -25,7 +25,7 @@ import org.apache.spark.SparkConf
import org.apache.spark.internal.Logging
import org.apache.spark.util.Utils.REDACTION_REPLACEMENT_TEXT
-private[spark] case class KafkaTokenClusterConf(
+case class KafkaTokenClusterConf(
identifier: String,
authBootstrapServers: String,
targetServersRegex: String,
@@ -57,7 +57,7 @@ private[spark] case class KafkaTokenClusterConf(
s"specifiedKafkaParams=${KafkaRedactionUtil.redactParams(specifiedKafkaParams.toSeq)}}"
}
-private [kafka010] object KafkaTokenSparkConf extends Logging {
+object KafkaTokenSparkConf extends Logging {
val CLUSTERS_CONFIG_PREFIX = "spark.kafka.clusters."
val DEFAULT_TARGET_SERVERS_REGEX = ".*"
val DEFAULT_SASL_KERBEROS_SERVICE_NAME = "kafka"
diff --git
a/connector/kafka-0-10-token-provider/src/main/scala/org/apache/spark/kafka010/KafkaTokenUtil.scala
b/connector/kafka-0-10-token-provider/src/main/scala/org/apache/spark/kafka010/KafkaTokenUtil.scala
index 669491f14205..54014859bc5e 100644
---
a/connector/kafka-0-10-token-provider/src/main/scala/org/apache/spark/kafka010/KafkaTokenUtil.scala
+++
b/connector/kafka-0-10-token-provider/src/main/scala/org/apache/spark/kafka010/KafkaTokenUtil.scala
@@ -44,7 +44,7 @@ import org.apache.spark.internal.config._
import org.apache.spark.util.{SecurityUtils, Utils}
import org.apache.spark.util.Utils.REDACTION_REPLACEMENT_TEXT
-private[spark] object KafkaTokenUtil extends Logging {
+object KafkaTokenUtil extends Logging {
val TOKEN_KIND = new Text("KAFKA_DELEGATION_TOKEN")
private val TOKEN_SERVICE_PREFIX = "kafka.server.delegation.token"
private val DATE_TIME_FORMATTER =
@@ -52,17 +52,17 @@ private[spark] object KafkaTokenUtil extends Logging {
.ofPattern("yyyy-MM-dd'T'HH:mm")
.withZone(ZoneId.systemDefault())
- private[kafka010] def getTokenService(identifier: String): Text =
+ def getTokenService(identifier: String): Text =
new Text(s"$TOKEN_SERVICE_PREFIX.$identifier")
private def getClusterIdentifier(service: Text): String =
service.toString().replace(s"$TOKEN_SERVICE_PREFIX.", "")
- private[spark] class KafkaDelegationTokenIdentifier extends
AbstractDelegationTokenIdentifier {
+ class KafkaDelegationTokenIdentifier extends
AbstractDelegationTokenIdentifier {
override def getKind: Text = TOKEN_KIND
}
- private[kafka010] def obtainToken(
+ def obtainToken(
sparkConf: SparkConf,
clusterConf: KafkaTokenClusterConf):
(Token[KafkaDelegationTokenIdentifier], Long) = {
checkProxyUser()
@@ -81,7 +81,7 @@ private[spark] object KafkaTokenUtil extends Logging {
), token.tokenInfo.expiryTimestamp)
}
- private[kafka010] def checkProxyUser(): Unit = {
+ def checkProxyUser(): Unit = {
val currentUser = UserGroupInformation.getCurrentUser()
// Obtaining delegation token for proxy user is planned but not yet
implemented
// See https://issues.apache.org/jira/browse/KAFKA-6945
@@ -89,7 +89,7 @@ private[spark] object KafkaTokenUtil extends Logging {
"user is not yet supported.")
}
- private[kafka010] def createAdminClientProperties(
+ def createAdminClientProperties(
sparkConf: SparkConf,
clusterConf: KafkaTokenClusterConf): ju.Properties = {
val adminClientProperties = new ju.Properties
diff --git a/project/SparkBuild.scala b/project/SparkBuild.scala
index e8a19de8e12d..f57438228745 100644
--- a/project/SparkBuild.scala
+++ b/project/SparkBuild.scala
@@ -334,10 +334,14 @@ object SparkBuild extends PomBuild {
"-groups",
"-skip-packages", Seq(
"org.apache.spark.api.python",
- "org.apache.spark.network",
"org.apache.spark.deploy",
- "org.apache.spark.util.collection",
- "org.apache.spark.sql.scripting"
+ "org.apache.spark.kafka010",
+ "org.apache.spark.network",
+ "org.apache.spark.sql.avro",
+ "org.apache.spark.sql.scripting",
+ "org.apache.spark.types.variant",
+ "org.apache.spark.ui.flamegraph",
+ "org.apache.spark.util.collection"
).mkString(":"),
"-doc-title", "Spark " + version.value.replaceAll("-SNAPSHOT", "") + "
ScalaDoc"
),
@@ -1380,10 +1384,14 @@ object Unidoc {
f.getCanonicalPath.contains("org/apache/spark/unsafe") &&
!f.getCanonicalPath.contains("org/apache/spark/unsafe/types/CalendarInterval")))
.map(_.filterNot(_.getCanonicalPath.contains("python")))
+
.map(_.filterNot(_.getCanonicalPath.contains("org/apache/spark/kafka010")))
+
.map(_.filterNot(_.getCanonicalPath.contains("org/apache/spark/types/variant")))
+
.map(_.filterNot(_.getCanonicalPath.contains("org/apache/spark/ui/flamegraph")))
.map(_.filterNot(_.getCanonicalPath.contains("org/apache/spark/util/collection")))
.map(_.filterNot(_.getCanonicalPath.contains("org/apache/spark/util/io")))
.map(_.filterNot(_.getCanonicalPath.contains("org/apache/spark/util/kvstore")))
.map(_.filterNot(_.getCanonicalPath.contains("org/apache/spark/sql/artifact")))
+
.map(_.filterNot(_.getCanonicalPath.contains("org/apache/spark/sql/avro")))
.map(_.filterNot(_.getCanonicalPath.contains("org/apache/spark/sql/catalyst")))
.map(_.filterNot(_.getCanonicalPath.contains("org/apache/spark/sql/connect/")))
.map(_.filterNot(_.getCanonicalPath.contains("org/apache/spark/sql/classic/")))
diff --git
a/sql/catalyst/src/main/scala/org/apache/spark/sql/exceptions/SqlScriptingException.scala
b/sql/catalyst/src/main/scala/org/apache/spark/sql/exceptions/SqlScriptingException.scala
index 7602366c71a6..28d8177dbb23 100644
---
a/sql/catalyst/src/main/scala/org/apache/spark/sql/exceptions/SqlScriptingException.scala
+++
b/sql/catalyst/src/main/scala/org/apache/spark/sql/exceptions/SqlScriptingException.scala
@@ -23,7 +23,7 @@ import org.apache.spark.{SparkThrowable, SparkThrowableHelper}
import org.apache.spark.sql.catalyst.trees.Origin
import
org.apache.spark.sql.exceptions.SqlScriptingException.errorMessageWithLineNumber
-class SqlScriptingException (
+private[sql] class SqlScriptingException (
errorClass: String,
cause: Throwable,
val origin: Origin,
diff --git
a/sql/core/src/main/scala/org/apache/spark/sql/jdbc/JdbcDialects.scala
b/sql/core/src/main/scala/org/apache/spark/sql/jdbc/JdbcDialects.scala
index 85dd5860e5a5..65e39ca0b91b 100644
--- a/sql/core/src/main/scala/org/apache/spark/sql/jdbc/JdbcDialects.scala
+++ b/sql/core/src/main/scala/org/apache/spark/sql/jdbc/JdbcDialects.scala
@@ -862,7 +862,7 @@ abstract class JdbcDialect extends Serializable with
Logging {
/**
* Make the `classifyException` method throw out the original exception
*/
-trait NoLegacyJDBCError extends JdbcDialect {
+private[sql] trait NoLegacyJDBCError extends JdbcDialect {
override def classifyException(
e: Throwable,
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]