This is an automated email from the ASF dual-hosted git repository.

dongjoon pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/spark-connect-swift.git


The following commit(s) were added to refs/heads/main by this push:
     new 93060c1  [SPARK-52072] Add `option()` variants to 
`SparkSession.Builder` and `Data(Frame|Stream)Reader`
93060c1 is described below

commit 93060c16ec96d9401baf29e0440e232bba8ee5ed
Author: Dongjoon Hyun <[email protected]>
AuthorDate: Sun May 11 17:03:48 2025 -0700

    [SPARK-52072] Add `option()` variants to `SparkSession.Builder` and 
`Data(Frame|Stream)Reader`
    
    ### What changes were proposed in this pull request?
    
    This PR aims to add more `option()` API variants to `SparkSession.Builder`, 
`DataFrameReader`, and `DataStreamReader`. While reviewing these files, I 
revised documentations too.
    
    ### Why are the changes needed?
    
    For feature parity.
    
    ### Does this PR introduce _any_ user-facing change?
    
    No.
    
    ### How was this patch tested?
    
    Pass the CIs.
    
    ### Was this patch authored or co-authored using generative AI tooling?
    
    No.
    
    Closes #129 from dongjoon-hyun/SPARK-52072.
    
    Authored-by: Dongjoon Hyun <[email protected]>
    Signed-off-by: Dongjoon Hyun <[email protected]>
---
 Sources/SparkConnect/DataFrameReader.swift  | 96 ++++++++++++++++++++---------
 Sources/SparkConnect/DataStreamReader.swift | 66 +++++++++++---------
 Sources/SparkConnect/SparkSession.swift     | 84 +++++++++++++++++--------
 3 files changed, 162 insertions(+), 84 deletions(-)

diff --git a/Sources/SparkConnect/DataFrameReader.swift 
b/Sources/SparkConnect/DataFrameReader.swift
index 859b854..7230ee1 100644
--- a/Sources/SparkConnect/DataFrameReader.swift
+++ b/Sources/SparkConnect/DataFrameReader.swift
@@ -18,7 +18,7 @@
 //
 import Foundation
 
-/// An interface used to load a `DataFrame` from external storage systems
+/// An interface used to load a ``DataFrame`` from external storage systems
 /// (e.g. file systems, key-value stores, etc). Use `SparkSession.read` to 
access this.
 public actor DataFrameReader: Sendable {
   var source: String = ""
@@ -64,7 +64,7 @@ public actor DataFrameReader: Sendable {
 
   /// Specifies the input data source format.
   /// - Parameter source: A string.
-  /// - Returns: A `DataFrameReader`.
+  /// - Returns: A ``DataFrameReader``.
   public func format(_ source: String) -> DataFrameReader {
     self.source = source
     return self
@@ -74,17 +74,53 @@ public actor DataFrameReader: Sendable {
   /// - Parameters:
   ///   - key: A key string.
   ///   - value: A value string.
-  /// - Returns: A `DataFrameReader`.
+  /// - Returns: A ``DataFrameReader``.
   public func option(_ key: String, _ value: String) -> DataFrameReader {
     self.extraOptions[key] = value
     return self
   }
 
+  /// Adds an input option for the underlying data source.
+  /// - Parameters:
+  ///   - key: A key string.
+  ///   - value: A bool value.
+  /// - Returns: A ``DataFrameReader``.
+  public func option(_ key: String, _ value: Bool) -> DataFrameReader {
+    return option(key, String(value))
+  }
+
+  /// Adds an input option for the underlying data source.
+  /// - Parameters:
+  ///   - key: A key string.
+  ///   - value: A `Int` value.
+  /// - Returns: A ``DataFrameReader``.
+  public func option(_ key: String, _ value: Int) -> DataFrameReader {
+    return option(key, String(value))
+  }
+
+  /// Adds an input option for the underlying data source.
+  /// - Parameters:
+  ///   - key: A key string.
+  ///   - value: A `Int64` value.
+  /// - Returns: A ``DataFrameReader``.
+  public func option(_ key: String, _ value: Int64) -> DataFrameReader {
+    return option(key, String(value))
+  }
+
+  /// Adds an input option for the underlying data source.
+  /// - Parameters:
+  ///   - key: A key string.
+  ///   - value: A `Double` value.
+  /// - Returns: A ``DataFrameReader``.
+  public func option(_ key: String, _ value: Double) -> DataFrameReader {
+    return option(key, String(value))
+  }
+
   /// Specifies the input schema. Some data sources (e.g. JSON) can infer the 
input schema
   /// automatically from data. By specifying the schema here, the underlying 
data source can skip
   /// the schema inference step, and thus speed up data loading.
   /// - Parameter schema: A DDL schema string.
-  /// - Returns: A `DataFrameReader`.
+  /// - Returns: A ``DataFrameReader``.
   @discardableResult
   public func schema(_ schema: String) async throws -> DataFrameReader {
     // Validate by parsing.
@@ -97,25 +133,25 @@ public actor DataFrameReader: Sendable {
     return self
   }
 
-  /// Loads input in as a `DataFrame`, for data sources that don't require a 
path (e.g. external
+  /// Loads input in as a ``DataFrame``, for data sources that don't require a 
path (e.g. external
   /// key-value stores).
-  /// - Returns: A `DataFrame`.
+  /// - Returns: A ``DataFrame``.
   public func load() -> DataFrame {
     return load([])
   }
 
-  /// Loads input in as a `DataFrame`, for data sources that require a path 
(e.g. data backed by a
+  /// Loads input in as a ``DataFrame``, for data sources that require a path 
(e.g. data backed by a
   /// local or distributed file system).
   /// - Parameter path: A path string.
-  /// - Returns: A `DataFrame`.
+  /// - Returns: A ``DataFrame``.
   public func load(_ path: String) -> DataFrame {
     return load([path])
   }
 
-  /// Loads input in as a `DataFrame`, for data sources that support multiple 
paths. Only works if
+  /// Loads input in as a ``DataFrame``, for data sources that support 
multiple paths. Only works if
   /// the source is a HadoopFsRelationProvider.
   /// - Parameter paths: An array of path strings.
-  /// - Returns: A `DataFrame`.
+  /// - Returns: A ``DataFrame``.
   public func load(_ paths: [String]) -> DataFrame {
     self.paths = paths
 
@@ -139,85 +175,85 @@ public actor DataFrameReader: Sendable {
     return DataFrame(spark: sparkSession, plan: plan)
   }
 
-  /// Loads a CSV file and returns the result as a `DataFrame`. See the 
documentation on the other
+  /// Loads a CSV file and returns the result as a ``DataFrame``. See the 
documentation on the other
   /// overloaded `csv()` method for more details.
   /// - Parameter path: A path string
-  /// - Returns: A `DataFrame`.
+  /// - Returns: A ``DataFrame``.
   public func csv(_ path: String) -> DataFrame {
     self.source = "csv"
     return load(path)
   }
 
-  /// Loads CSV files and returns the result as a `DataFrame`.
+  /// Loads CSV files and returns the result as a ``DataFrame``.
   /// This function will go through the input once to determine the input 
schema if `inferSchema`
   /// is enabled. To avoid going through the entire data once, disable 
`inferSchema` option or
   /// specify the schema explicitly using `schema`.
   /// - Parameter paths: Path strings.
-  /// - Returns: A `DataFrame`.
+  /// - Returns: A ``DataFrame``.
   public func csv(_ paths: String...) -> DataFrame {
     self.source = "csv"
     return load(paths)
   }
 
-  /// Loads a JSON file and returns the result as a `DataFrame`.
+  /// Loads a JSON file and returns the result as a ``DataFrame``.
   /// - Parameter path: A path string
-  /// - Returns: A `DataFrame`.
+  /// - Returns: A ``DataFrame``.
   public func json(_ path: String) -> DataFrame {
     self.source = "json"
     return load(path)
   }
 
-  /// Loads JSON files and returns the result as a `DataFrame`.
+  /// Loads JSON files and returns the result as a ``DataFrame``.
   /// - Parameter paths: Path strings
-  /// - Returns: A `DataFrame`.
+  /// - Returns: A ``DataFrame``.
   public func json(_ paths: String...) -> DataFrame {
     self.source = "json"
     return load(paths)
   }
 
-  /// Loads an XML file and returns the result as a `DataFrame`.
+  /// Loads an XML file and returns the result as a ``DataFrame``.
   /// - Parameter path: A path string
-  /// - Returns: A `DataFrame`.
+  /// - Returns: A ``DataFrame``.
   public func xml(_ path: String) -> DataFrame {
     self.source = "xml"
     return load(path)
   }
 
-  /// Loads XML files and returns the result as a `DataFrame`.
+  /// Loads XML files and returns the result as a ``DataFrame``.
   /// - Parameter paths: Path strings
-  /// - Returns: A `DataFrame`.
+  /// - Returns: A ``DataFrame``.
   public func xml(_ paths: String...) -> DataFrame {
     self.source = "xml"
     return load(paths)
   }
 
-  /// Loads an ORC file and returns the result as a `DataFrame`.
+  /// Loads an ORC file and returns the result as a ``DataFrame``.
   /// - Parameter path: A path string
-  /// - Returns: A `DataFrame`.
+  /// - Returns: A ``DataFrame``.
   public func orc(_ path: String) -> DataFrame {
     self.source = "orc"
     return load(path)
   }
 
-  /// Loads ORC files and returns the result as a `DataFrame`.
+  /// Loads ORC files and returns the result as a ``DataFrame``.
   /// - Parameter paths: Path strings
-  /// - Returns: A `DataFrame`.
+  /// - Returns: A ``DataFrame``.
   public func orc(_ paths: String...) -> DataFrame {
     self.source = "orc"
     return load(paths)
   }
 
-  /// Loads a Parquet file and returns the result as a `DataFrame`.
+  /// Loads a Parquet file and returns the result as a ``DataFrame``.
   /// - Parameter path: A path string
-  /// - Returns: A `DataFrame`.
+  /// - Returns: A ``DataFrame``.
   public func parquet(_ path: String) -> DataFrame {
     self.source = "parquet"
     return load(path)
   }
 
-  /// Loads Parquet files, returning the result as a `DataFrame`.
+  /// Loads Parquet files, returning the result as a ``DataFrame``.
   /// - Parameter paths: Path strings
-  /// - Returns: A `DataFrame`.
+  /// - Returns: A ``DataFrame``.
   public func parquet(_ paths: String...) -> DataFrame {
     self.source = "parquet"
     return load(paths)
diff --git a/Sources/SparkConnect/DataStreamReader.swift 
b/Sources/SparkConnect/DataStreamReader.swift
index 41763e7..e90a1c1 100644
--- a/Sources/SparkConnect/DataStreamReader.swift
+++ b/Sources/SparkConnect/DataStreamReader.swift
@@ -18,7 +18,7 @@
 //
 import Foundation
 
-/// An actor to load a streaming `Dataset` from external storage systems
+/// An actor to load a streaming ``DataFrame`` from external storage systems
 /// (e.g. file systems, key-value stores, etc). Use `SparkSession.readStream` 
to access this.
 public actor DataStreamReader: Sendable {
   var source: String = ""
@@ -47,7 +47,7 @@ public actor DataStreamReader: Sendable {
   /// automatically from data. By specifying the schema here, the underlying 
data source can skip
   /// the schema inference step, and thus speed up data loading.
   /// - Parameter schema: A DDL schema string.
-  /// - Returns: A `DataStreamReader`.
+  /// - Returns: A ``DataStreamReader``.
   @discardableResult
   public func schema(_ schema: String) async throws -> DataStreamReader {
     // Validate by parsing.
@@ -64,7 +64,7 @@ public actor DataStreamReader: Sendable {
   /// - Parameters:
   ///   - key: A key string.
   ///   - value: A value string.
-  /// - Returns: A `DataStreamReader`.
+  /// - Returns: A ``DataStreamReader``.
   public func option(_ key: String, _ value: String) -> DataStreamReader {
     self.extraOptions[key] = value
     return self
@@ -74,35 +74,41 @@ public actor DataStreamReader: Sendable {
   /// - Parameters:
   ///   - key: A key string.
   ///   - value: A `Bool` value.
-  /// - Returns: A `DataStreamReader`.
+  /// - Returns: A ``DataStreamReader``.
   public func option(_ key: String, _ value: Bool) -> DataStreamReader {
-    self.extraOptions[key] = String(value)
-    return self
+    return option(key, String(value))
+  }
+
+  /// Adds an input option for the underlying data source.
+  /// - Parameters:
+  ///   - key: A key string.
+  ///   - value: A `Int` value.
+  /// - Returns: A ``DataStreamReader``.
+  public func option(_ key: String, _ value: Int) -> DataStreamReader {
+    return option(key, String(value))
   }
 
   /// Adds an input option for the underlying data source.
   /// - Parameters:
   ///   - key: A key string.
   ///   - value: A `Int64` value.
-  /// - Returns: A `DataStreamReader`.
+  /// - Returns: A ``DataStreamReader``.
   public func option(_ key: String, _ value: Int64) -> DataStreamReader {
-    self.extraOptions[key] = String(value)
-    return self
+    return option(key, String(value))
   }
 
   /// Adds an input option for the underlying data source.
   /// - Parameters:
   ///   - key: A key string.
   ///   - value: A `Double` value.
-  /// - Returns: A `DataStreamReader`.
+  /// - Returns: A ``DataStreamReader``.
   public func option(_ key: String, _ value: Double) -> DataStreamReader {
-    self.extraOptions[key] = String(value)
-    return self
+    return option(key, String(value))
   }
 
   /// Adds input options for the underlying data source.
   /// - Parameter options: A string-string dictionary.
-  /// - Returns: A `DataStreamReader`.
+  /// - Returns: A ``DataStreamReader``.
   public func options(_ options: [String: String]) -> DataStreamReader {
     for (key, value) in options {
       self.extraOptions[key] = value
@@ -110,17 +116,17 @@ public actor DataStreamReader: Sendable {
     return self
   }
 
-  /// Loads input data stream in as a `DataFrame`, for data streams that don't 
require a path
+  /// Loads input data stream in as a ``DataFrame``, for data streams that 
don't require a path
   /// (e.g. external key-value stores).
-  /// - Returns: A `DataFrame`.
+  /// - Returns: A ``DataFrame``.
   public func load() -> DataFrame {
     return load([])
   }
 
-  /// Loads input data stream in as a `DataFrame`, for data streams that 
require a path
+  /// Loads input data stream in as a ``DataFrame``, for data streams that 
require a path
   /// (e.g. data backed by a local or distributed file system).
   /// - Parameter path: A path string.
-  /// - Returns: A `DataFrame`.
+  /// - Returns: A ``DataFrame``.
   public func load(_ path: String) -> DataFrame {
     return load([path])
   }
@@ -149,7 +155,7 @@ public actor DataStreamReader: Sendable {
     return DataFrame(spark: sparkSession, plan: plan)
   }
 
-  /// Define a Streaming DataFrame on a Table. The DataSource corresponding to 
the table should
+  /// Define a Streaming ``DataFrame`` on a Table. The DataSource 
corresponding to the table should
   /// support streaming mode.
   /// - Parameter tableName: The name of the table.
   /// - Returns: A ``DataFrame``.
@@ -171,49 +177,49 @@ public actor DataStreamReader: Sendable {
     return DataFrame(spark: sparkSession, plan: plan)
   }
 
-  /// Loads a text file stream and returns the result as a `DataFrame`.
+  /// Loads a text file stream and returns the result as a ``DataFrame``.
   /// - Parameter path: A path string
-  /// - Returns: A `DataFrame`.
+  /// - Returns: A ``DataFrame``.
   public func text(_ path: String) -> DataFrame {
     self.source = "text"
     return load(path)
   }
 
-  /// Loads a CSV file stream and returns the result as a `DataFrame`.
+  /// Loads a CSV file stream and returns the result as a ``DataFrame``.
   /// - Parameter path: A path string
-  /// - Returns: A `DataFrame`.
+  /// - Returns: A ``DataFrame``.
   public func csv(_ path: String) -> DataFrame {
     self.source = "csv"
     return load(path)
   }
 
-  /// Loads a JSON file stream and returns the result as a `DataFrame`.
+  /// Loads a JSON file stream and returns the result as a ``DataFrame``.
   /// - Parameter path: A path string
-  /// - Returns: A `DataFrame`.
+  /// - Returns: A ``DataFrame``.
   public func json(_ path: String) -> DataFrame {
     self.source = "json"
     return load(path)
   }
 
-  /// Loads an XML file stream and returns the result as a `DataFrame`.
+  /// Loads an XML file stream and returns the result as a ``DataFrame``.
   /// - Parameter path: A path string
-  /// - Returns: A `DataFrame`.
+  /// - Returns: A ``DataFrame``.
   public func xml(_ path: String) -> DataFrame {
     self.source = "xml"
     return load(path)
   }
 
-  /// Loads an ORC file stream and returns the result as a `DataFrame`.
+  /// Loads an ORC file stream and returns the result as a ``DataFrame``.
   /// - Parameter path: A path string
-  /// - Returns: A `DataFrame`.
+  /// - Returns: A ``DataFrame``.
   public func orc(_ path: String) -> DataFrame {
     self.source = "orc"
     return load(path)
   }
 
-  /// Loads a Parquet file stream and returns the result as a `DataFrame`.
+  /// Loads a Parquet file stream and returns the result as a ``DataFrame``.
   /// - Parameter path: A path string
-  /// - Returns: A `DataFrame`.
+  /// - Returns: A ``DataFrame``.
   public func parquet(_ path: String) -> DataFrame {
     self.source = "parquet"
     return load(path)
diff --git a/Sources/SparkConnect/SparkSession.swift 
b/Sources/SparkConnect/SparkSession.swift
index 392f387..2ef0cef 100644
--- a/Sources/SparkConnect/SparkSession.swift
+++ b/Sources/SparkConnect/SparkSession.swift
@@ -91,14 +91,14 @@ public actor SparkSession {
     await client.stop()
   }
   
-  /// Returns a `DataFrame` with no rows or columns.
+  /// Returns a ``DataFrame`` with no rows or columns.
   public var emptyDataFrame: DataFrame {
     get async {
       return await DataFrame(spark: self, plan: client.getLocalRelation())
     }
   }
 
-  /// Create a ``DataFrame`` with a single ``Int64`` column name `id`, 
containing elements in a
+  /// Create a ``DataFrame`` with a single `Int64` column name `id`, 
containing elements in a
   /// range from 0 to `end` (exclusive) with step value 1.
   ///
   /// - Parameter end: A value for the end of range.
@@ -107,7 +107,7 @@ public actor SparkSession {
     return try await range(0, end)
   }
 
-  /// Create a ``DataFrame`` with a single ``Int64`` column named `id`, 
containing elements in a
+  /// Create a ``DataFrame`` with a single `Int64` column named `id`, 
containing elements in a
   /// range from `start` to `end` (exclusive) with a step value (default: 1).
   ///
   /// - Parameters:
@@ -138,7 +138,7 @@ public actor SparkSession {
   ///
   /// - Parameter sqlText: A SQL query string
   /// - Returns: A DataFrame containing the query results
-  /// - Throws: `SparkConnectError` if the query execution fails
+  /// - Throws: ``SparkConnectError`` if the query execution fails
   public func sql(_ sqlText: String) async throws -> DataFrame {
     return try await DataFrame(spark: self, sqlText: sqlText)
   }
@@ -161,7 +161,7 @@ public actor SparkSession {
   ///   - sqlText: A SQL query with positional parameter placeholders (`?`)
   ///   - args: Parameter values to substitute for the placeholders
   /// - Returns: A DataFrame containing the query results
-  /// - Throws: `SparkConnectError` if the query execution fails or if 
parameter conversion fails
+  /// - Throws: ``SparkConnectError`` if the query execution fails or if 
parameter conversion fails
   public func sql(_ sqlText: String, _ args: Sendable...) async throws -> 
DataFrame {
     return try await DataFrame(spark: self, sqlText: sqlText, args)
   }
@@ -186,14 +186,14 @@ public actor SparkSession {
   ///   - sqlText: A SQL query with named parameter placeholders (`:paramName`)
   ///   - args: A dictionary mapping parameter names to values
   /// - Returns: A DataFrame containing the query results
-  /// - Throws: `SparkConnectError` if the query execution fails or if 
parameter conversion fails
+  /// - Throws: ``SparkConnectError`` if the query execution fails or if 
parameter conversion fails
   public func sql(_ sqlText: String, args: [String: Sendable]) async throws -> 
DataFrame {
     return try await DataFrame(spark: self, sqlText: sqlText, args)
   }
 
-  /// Returns a DataFrameReader for reading data in various formats.
+  /// Returns a ``DataFrameReader`` for reading data in various formats.
   ///
-  /// The DataFrameReader provides methods to load data from external storage 
systems
+  /// The ``DataFrameReader`` provides methods to load data from external 
storage systems
   /// such as file systems and databases.
   ///
   /// ```swift
@@ -212,16 +212,16 @@ public actor SparkSession {
   ///     .orc("path/to/file.orc")
   /// ```
   ///
-  /// - Returns: A DataFrameReader instance configured for this session
+  /// - Returns: A ``DataFrameReader`` instance configured for this session
   public var read: DataFrameReader {
     get {
       DataFrameReader(sparkSession: self)
     }
   }
 
-  /// Returns a `DataStreamReader` that can be used to read streaming data in 
as a `DataFrame`.
+  /// Returns a ``DataStreamReader`` that can be used to read streaming data 
in as a ``DataFrame``.
   ///
-  /// The DataFrameReader provides methods to load data from external storage 
systems
+  /// The ``DataFrameReader`` provides methods to load data from external 
storage systems
   /// such as file systems, databases, and streaming sources.
   ///
   /// ```swift
@@ -229,16 +229,16 @@ public actor SparkSession {
   /// let orcData = spark.readStream.orc("path/to/file.orc")
   /// ```
   ///
-  /// - Returns: A DataFrameReader instance configured for this session
+  /// - Returns: A ``DataFrameReader`` instance configured for this session
   public var readStream: DataStreamReader {
     get {
       DataStreamReader(sparkSession: self)
     }
   }
 
-  /// Returns a DataFrame representing the specified table or view.
+  /// Returns a ``DataFrame`` representing the specified table or view.
   ///
-  /// This method retrieves a table or view from the Spark catalog and returns 
it as a DataFrame.
+  /// This method retrieves a table or view from the Spark catalog and returns 
it as a ``DataFrame``.
   /// The table name can be qualified with a database name (e.g., 
"database.table") or unqualified.
   ///
   /// ```swift
@@ -253,8 +253,8 @@ public actor SparkSession {
   /// ```
   ///
   /// - Parameter tableName: The name of the table or view to load
-  /// - Returns: A DataFrame representing the table data
-  /// - Throws: `SparkConnectError` if the table doesn't exist or cannot be 
accessed
+  /// - Returns: A ``DataFrame`` representing the table data
+  /// - Throws: ``SparkConnectError`` if the table doesn't exist or cannot be 
accessed
   public func table(_ tableName: String) async throws -> DataFrame {
     return await read.table(tableName)
   }
@@ -302,7 +302,7 @@ public actor SparkSession {
   /// ```
   ///
   /// - Parameter tag: The tag to add. Cannot contain commas or be empty
-  /// - Throws: `SparkConnectError` if the tag is invalid
+  /// - Throws: ``SparkConnectError`` if the tag is invalid
   public func addTag(_ tag: String) async throws {
     try await client.addTag(tag: tag)
   }
@@ -317,7 +317,7 @@ public actor SparkSession {
   /// ```
   ///
   /// - Parameter tag: The tag to remove. Cannot contain commas or be empty
-  /// - Throws: `SparkConnectError` if the tag is invalid
+  /// - Throws: ``SparkConnectError`` if the tag is invalid
   public func removeTag(_ tag: String) async throws {
     try await client.removeTag(tag: tag)
   }
@@ -410,7 +410,7 @@ public actor SparkSession {
   public actor Builder {
     var sparkConf: [String: String] = [:]
 
-    /// Sets a configuration option for the SparkSession.
+    /// Sets a configuration option for the ``SparkSession``.
     ///
     /// Configuration options control various aspects of Spark behavior, from 
execution settings
     /// to SQL optimization parameters.
@@ -431,6 +431,42 @@ public actor SparkSession {
       return self
     }
 
+    /// Sets a configuration option for the ``SparkSession``.
+    /// - Parameters:
+    ///   - key: The configuration key (e.g., "spark.sql.shuffle.partitions")
+    ///   - value: The configuration bool value.
+    /// - Returns: The builder instance for method chaining
+    public func config(_ key: String, _ value: Bool) -> Builder {
+      return config(key, String(value))
+    }
+
+    /// Sets a configuration option for the ``SparkSession``.
+    /// - Parameters:
+    ///   - key: The configuration key (e.g., "spark.sql.shuffle.partitions")
+    ///   - value: The configuration `Int` value.
+    /// - Returns: The builder instance for method chaining
+    public func config(_ key: String, _ value: Int) -> Builder {
+      return config(key, String(value))
+    }
+
+    /// Sets a configuration option for the ``SparkSession``.
+    /// - Parameters:
+    ///   - key: The configuration key (e.g., "spark.sql.shuffle.partitions")
+    ///   - value: The configuration `Int64` value.
+    /// - Returns: The builder instance for method chaining
+    public func config(_ key: String, _ value: Int64) -> Builder {
+      return config(key, String(value))
+    }
+
+    /// Sets a configuration option for the ``SparkSession``.
+    /// - Parameters:
+    ///   - key: The configuration key (e.g., "spark.sql.shuffle.partitions")
+    ///   - value: The configuration `Double` value.
+    /// - Returns: The builder instance for method chaining
+    public func config(_ key: String, _ value: Double) -> Builder {
+      return config(key, String(value))
+    }
+
     /// Removes all configuration options from the builder.
     ///
     /// This method clears all previously set configurations, allowing you to 
start fresh.
@@ -470,7 +506,7 @@ public actor SparkSession {
       return config("spark.remote", url)
     }
 
-    /// Sets the application name for this SparkSession.
+    /// Sets the application name for this ``SparkSession``.
     ///
     /// The application name is displayed in the Spark UI and helps identify 
your application
     /// among others running on the cluster.
@@ -505,7 +541,7 @@ public actor SparkSession {
     }
 
     /// Create a new ``SparkSession``. If `spark.remote` is not given, 
`sc://localhost:15002` is used.
-    /// - Returns: A newly created `SparkSession`.
+    /// - Returns: A newly created ``SparkSession``.
     func create() async throws -> SparkSession {
       let remote = ProcessInfo.processInfo.environment["SPARK_REMOTE"] ?? 
"sc://localhost:15002"
       let session = SparkSession(sparkConf["spark.remote"] ?? remote)
@@ -516,9 +552,9 @@ public actor SparkSession {
       return session
     }
 
-    /// Creates or retrieves an existing SparkSession.
+    /// Creates or retrieves an existing ``SparkSession``.
     ///
-    /// This is the primary method for obtaining a SparkSession instance. If a 
session with
+    /// This is the primary method for obtaining a ``SparkSession`` instance. 
If a session with
     /// the same configuration already exists, it will be returned. Otherwise, 
a new session
     /// is created with the specified configuration.
     ///
@@ -540,7 +576,7 @@ public actor SparkSession {
     /// ```
     ///
     /// - Returns: A configured SparkSession instance
-    /// - Throws: `SparkConnectError` if connection fails or configuration is 
invalid
+    /// - Throws: ``SparkConnectError`` if connection fails or configuration 
is invalid
     public func getOrCreate() async throws -> SparkSession {
       return try await create()
     }


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to