Repository navigation
Apache Spark™ Connect Client for Swift language is a subproject of Apache Spark and aims to provide Swift implementation of Spark Connect. 0.8.0 is the 8th release of Apache Spark Connect for Swift client. This is still experimental.
Website
https://apache.github.io/spark-connect-swift/
Swift Package Index
https://swiftpackageindex.com/apache/spark-connect-swift
Documentation
https://swiftpackageindex.com/apache/spark-connect-swift/0.8.0/documentation/sparkconnect
Full Changelog
Resolved Issues
- [SPARK-61339] Upgrade gRPC Swift NIO Transport to 2.12.0
- [SPARK-61338] Use Apache Spark 4.0.5, 4.1.4, and 4.2.1 Docker images in CI
- [SPARK-61330] Use Apache Spark 4.3.0 official release and Docker image in CI and docs
- [SPARK-60619] Use Apache Spark 4.0.5, 4.1.4, and 4.2.1 instead of RCs
- [SPARK-60516] Fix
DataFrame.toDFto rename columns instead of selecting them - [SPARK-60511] Make SparkSession.Builder.create public
- [SPARK-60477] Fix
DataFrameStatFunctions.approxQuantileto throw instead of crashing on empty results - [SPARK-60476] Remove unused
ArrowFlightfiles - [SPARK-60472] Fix
collectto throw an error instead of misreading compressed Arrow batches - [SPARK-60471] Fix
DataFrame.withColumnRenamedto not crash on duplicate column names - [SPARK-60464] Fix completed executions to not fail when the final
ReleaseExecutefails - [SPARK-60440] Migrate
notify_test_workflow.ymlfrompull_request_targettoworkflow_run - [SPARK-60435] Enable gRPC keepalive by default and support
grpc_keepalive_*parameters in connection string - [SPARK-60434] Send
client_observed_server_side_session_idto detect server-side session changes - [SPARK-60426] Make the index-based subscript of Row public
- [SPARK-60412] Fix
SparkSession.Builderto not send spark.(remote|master) to the server - [SPARK-60409] Fix
createDataFrameto keep the number of rows of local data without columns - [SPARK-60407] Fix command APIs to not return empty results when ExecutionProgress arrives first
- [SPARK-60405] Fix
collectto return emptyRows instead of crashing on results without columns - [SPARK-60404] Use lowercase UUIDs as operation IDs to fix ReattachExecute and ReleaseExecute
- [SPARK-60390] Fix
collectto return struct columns as nestedRows instead of crashing on non-UTF-8 binary fields - [SPARK-60389] Fix
createDataFrameto throw instead of crashing on a non-integerspark.sql.session.localRelationCacheThreshold - [SPARK-60388] Fix
DataFrame.naandDataFrame.stat.sampleByto not crash on unsupported value types - [SPARK-60352] Fix DataFrameStatFunctions.cov/corr/approxQuantile to throw instead of crashing on unexpected result types
- [SPARK-60353] Fix
CatalogAPIs to not crash on null values returned by the server - [SPARK-60351] Fix
getConf(WithDefault|Option)?andisModifiableto not crash on empty Config responses - [SPARK-60349] Fix
StreamingQuerycreation to throw instead of trapping on non-UUID query ids from the server - [SPARK-60303] Support
UDFRegistration.registerJavaviaSparkSession.udf - [SPARK-60298] Set default
grpc_max_message_sizeto 128 MiB and support Arrow batch result chunking - [SPARK-60299] Fix
SparkSessionto reject an invalidsession_idinstead of silently truncating it - [SPARK-60297] Enforce TLS in
SparkConnectClientwhen a token is set - [SPARK-60295] Fix flaky
StreamingQueryTests.statustest by waiting for query initialization before stop - [SPARK-60289] Upgrade
gRPC Swift NIO Transportto 2.11.0 - [SPARK-60290] Upgrade
gRPC Swift Protobufto 2.5.0 - [SPARK-60292] Upgrade Swift Docker image to 6.4.1
- [SPARK-60288] Upgrade
grpc-swift-2to 2.4.4 - [SPARK-60064] Fix DataFrameReader and DataStreamReader to not send empty format when format is not specified
- [SPARK-60063] Fix Catalog.listDatabases/getDatabase/getFunction to not crash on null locationUri and className
- [SPARK-60061] Fix Row.getAsTimestampNanos and Row.== to not crash on out-of-range values
- [SPARK-60060] Make StreamingQueryStatus and StreamingQueryException properties public
- [SPARK-60055] Fix
dropDuplicatesWithinWatermarkto setwithinWatermarkinDeduplicaterelation - [SPARK-60054] Fix
DataFrame.hintto not crash on out-of-range integers and unsupported parameter types - [SPARK-60053] Fix
MergeIntoWriter.updateto pass assignments to the merge action - [SPARK-60051] Fix
DataFrame.collect()to returnDataforBINARYcolumns instead of crashing - [SPARK-59956] Use 4.0.5 RC1 for Spark 4.0 integration tests
- [SPARK-59940] Use Swift 6.4 as the minimum version and unify CI on
xcode-27 - [SPARK-59904] Upgrade Iceberg to 1.12.0 in integration tests
- [SPARK-59873] Use
ubuntu-26.04instead ofubuntu-latestin GitHub Actions - [SPARK-59867] Update GitHub Actions to the latest versions
- [SPARK-59864] Use 4.1.4 RC1 for Spark 4.1 integration tests
- [SPARK-59863] Use 4.2.1 RC1 for Spark 4.2 integration tests
- [SPARK-59735] Use
static-debian13distroless image inExamples - [SPARK-59736] Use
Swift 6.4Docker image in all Linux CI jobs - [SPARK-59675] Migrate
Examplesto Swift 6.4 - [SPARK-59664] Use official
Swift 6.4Docker image instead of nightly - [SPARK-59646] Upgrade
gRPC Swift NIO Transportto 2.10.0 - [SPARK-59592] Use Java 21 at least in CI
- [SPARK-59591] Add integration tests with Swift 6.4
- [SPARK-59590] Remove unnecessary
trykeywords reported by Swift 6.4 - [SPARK-59583] Upgrade
actions/checkoutto v7 - [SPARK-59485] Use server-side aggregation for
DataFrame.count() - [SPARK-59484] Use
valueas the output column name ofDataFrame.toJSON - [SPARK-59483] Fix
DataFrame.(head|first)to throw an error instead of crashing on empty results - [SPARK-59481] Fix concurrent commands on the same session to return correct responses
- [SPARK-59480] Fix concurrent actions on the same DataFrame to return correct results
- [SPARK-59474] Support
DECIMALtype increateDataFramewith[[Sendable?]]rows - [SPARK-59473] Support top-level
Decimaldecoding inDataFrame.collect(as:) - [SPARK-59472] Support
Decimalproperties increateDataFramewithEncodabletypes - [SPARK-59471] Fix
DECIMALdecoding to use the full signed 128-bit value - [SPARK-59470] Respect
spark.sql.caseSensitivewhen resolving column names inDataFrame.collect(as:) - [SPARK-59465] Support integral to floating-point upcasts in
DataFrame.collect(as:) - [SPARK-59464] Fix
DATEhandling for dates before 1970 and after 2106 - [SPARK-59463] Fix FlatBuffers nesting assertion on
TIMESTAMPcolumns increateDataFrame - [SPARK-59462] Support safe upcasts and throw errors instead of crashing in
DataFrame.collect(as:) - [SPARK-59450] Support Codable in
createDataFrameandDataFrame.collect - [SPARK-59449] Support type-safe getters in
Row - [SPARK-59429] Pass plan ID in
DataFrame.colRegex - [SPARK-59420] Support
withFieldanddropFieldsinColumn - [SPARK-59416] Support
coland subscript column accessors inDataFrame - [SPARK-59414] Assign plan IDs to
DataFramerelations - [SPARK-59399] Support
colRegexinDataFrame - [SPARK-59391] Support
groupingSetsinDataFrame - [SPARK-59380] Upgrade
actions/setup-javato v6 - [SPARK-59264] Cache Apache Spark distributions in GitHub Actions jobs
- [SPARK-59260] Index all public functions and types in the DocC catalog
- [SPARK-59258] Support higher-order map functions
- [SPARK-59257] Update docker GitHub Actions to the latest ASF-approved hashes
- [SPARK-59254] Support higher-order array functions
- [SPARK-59245] Support HLL sketch and bitmap aggregate functions
- [SPARK-59241] Support Theta, KLL and Tuple sketch functions
- [SPARK-59240] Support
call_functionandcall_udffunctions - [SPARK-59239] Support
counter_diffwindow function - [SPARK-59238] Support partition transform functions
- [SPARK-59237] Support
broadcastfunction - [SPARK-59236] Support vector functions
- [SPARK-59235] Support error, reflection and bitmap functions
- [SPARK-59228] Support AES and HMAC functions
- [SPARK-59227] Support base32 functions
- [SPARK-59226] Support geospatial ST functions
- [SPARK-59225] Support URL functions
- [SPARK-59223] Support VARIANT functions
- [SPARK-59222] Support XML functions
- [SPARK-59221] Support linear regression aggregate functions
- [SPARK-59217] Support interval and timestamp constructor functions
- [SPARK-59216] Support JSON and CSV functions
- [SPARK-59215] Support general aggregate functions
- [SPARK-59214] Support bitwise functions
- [SPARK-59213] Support null ordering in sort functions and
Column - [SPARK-59211] Support conditional functions
- [SPARK-59210] Support misc metadata functions
- [SPARK-59209] Support
greatest,least,randomandtry_*arithmetic functions - [SPARK-59207] Support predicate functions
- [SPARK-59206] Support hash functions
- [SPARK-59205] Support
TIMESTAMP_NTZ(p)andTIMESTAMP_LTZ(p)increateDataFrame - [SPARK-59203] Support nanosecond timestamp literals in
litand SQL parameter binding - [SPARK-59198] Support nanosecond timestamp values in
DataFrame.collect - [SPARK-59197] Support
TIMESTAMP_NTZ(p)andTIMESTAMP_LTZ(p)nanosecond timestamp types inDataType - [SPARK-59195] Create a gRPC channel per session instead of per RPC
- [SPARK-59194] Use numeric Spark version comparison in tests
- [SPARK-59193] Add
firstOrThrowto avoid trapping on empty server responses - [SPARK-59192] Avoid force casts in
DataFrame.collect - [SPARK-59191] Support
grpc_max_message_sizein connection string - [SPARK-59190] Make
Row.getAsBoolthrow instead of trapping on type mismatch - [SPARK-59179] Add
Xcode 27(Swift 6.4) GitHub Action job - [SPARK-59178] Use
Xcode 26.6in CIs - [SPARK-59177] Use lower-bound version checks in
SQLTestsandSparkConnectClientTests - [SPARK-59159] Remove
queriesForSpark4OnlyfromSQLTests - [SPARK-59157] Upgrade
grpc-swift-2to 2.4.3 - [SPARK-59156] Add
MacOSintegration test with Apache Spark4.3.0RC1 - [SPARK-59155] Support
TIME(p)precision increateDataFrame - [SPARK-58957] Upgrade
gRPC Swift NIO Transportto 2.9.2 - [SPARK-58956] Upgrade
swift-systemto 1.8.1 - [SPARK-58667] Upgrade
swift-systemto 1.8.0 - [SPARK-52747] Test timezone variations
- [SPARK-52746] Test
isLocalbehavior explicitly for Spark 4.0 and 4.1+ servers - [SPARK-58652] Update
Spark Connect-generatedSwiftsource code withbranch-4.3 (2026-08-07) - [SPARK-58653] Support typed
StreamingQueryProgressin(last|recent)Progress - [SPARK-58651] Support
parseDDLinSparkSession - [SPARK-58648] Support StructType in schema, createDataFrame, and to APIs
- [SPARK-58647] Add public
DataTypeandStructType - [SPARK-58644] Document intentional ignore of
queryStartedEventJsoninDataStreamWriter - [SPARK-58610] Support
cloneSessioninSparkSession - [SPARK-58608] Support
Observationto retrieve observed metrics - [SPARK-58579] Support
TIMEtype inSparkSession.createDataFrame - [SPARK-58574] Support
TIMEtype literals inlitand SQL parameter binding - [SPARK-58571] Support
TIMEtype values inDataFrame.collect - [SPARK-58568] Support
TIMEtype inDataType.simpleString - [SPARK-58563] Support server-side error chain in
SparkConnectErrorviaFetchErrorDetails - [SPARK-58560] Use Apache Spark
4.0.4and4.1.3in CI - [SPARK-58543] Support reattachable execution with
ReattachExecuteandReleaseExecute - [SPARK-58542] Upgrade
gRPC Swift NIO Transportto 2.9.1 - [SPARK-58541] Support retry with exponential backoff in
SparkConnectClient - [SPARK-58539] Support error details in
SparkConnectErrorusing gRPCErrorInfo - [SPARK-58530] Support large local data in
createDataFrameviaCachedLocalRelation - [SPARK-58528] Support cache artifact upload in
SparkConnectClient - [SPARK-58526] Fix
VariableBufferBuilderto handle large first value and offsets truncation - [SPARK-58524] Add
SHA256struct - [SPARK-58498] Support
geometry/geographytypes inDataType.simpleString - [SPARK-58497] Support
createDataFrameinSparkSession - [SPARK-58496] Support field-name-based access in
Row - [SPARK-58493] Support aggregate functions in
AggregateFunctions - [SPARK-58492] Support window functions with
Window,WindowSpecandColumn.over - [SPARK-58491] Support
exprinFunctions - [SPARK-58490] Support collection functions in
CollectionFunctions - [SPARK-58489] Support datetime functions in
DateTimeFunctions - [SPARK-58483] Support string functions in
StringFunctions - [SPARK-58479] Support math functions in
MathFunctions - [SPARK-58477] Support
when/otherwiseinColumnandFunctions - [SPARK-58476] Support Column-based
sort/withColumn/drop/joininDataFrame - [SPARK-58475] Support predicate and string methods in
Column - [SPARK-58474] Support Swift literal operands in
Columnoperators viaSparkLiteral - [SPARK-58473] Support comparison/logical/arithmetic operators in
Column - [SPARK-58434] Support
pivotinGroupedData - [SPARK-58433] Support
repartitionByRangeforDataFrame - [SPARK-58432] Support
sortWithinPartitionsforDataFrame - [SPARK-58430] Support
aliasforDataFrame - [SPARK-58427] Support
randomSplitforDataFrame - [SPARK-58425] Support
observeforDataFrame - [SPARK-58424] Add
count/sum/avg/mean/min/maxtoGroupedData - [SPARK-58421] Improve
sqlparameter binding to support more literal types instead of crashing - [SPARK-58345] Handle Arrow message load failures in
DataFrame.execute - [SPARK-58344] Support Arrow
Nulltype to fixcollect()crash on void columns - [SPARK-58339] Send
RemoveCachedRemoteRelationCommandwhen checkpointedDataFrameis deallocated - [SPARK-58338] Fix
defineFlowto sendrelationviarelation_flow_details - [SPARK-58337] Fix
StreamingQuery.exception()to returnnilwhen no exception exists - [SPARK-58336] Support
Columnexpression type andfunctionsAPI