Spark Release 4.0.0

Apache Spark 4.0.0 marks a significant milestone as the inaugural release in the 4.x series, embodying the collective effort of the vibrant open-source community. This release is a testament to tremendous collaboration, resolving over 5100 tickets with contributions from more than 390 individuals.

Spark Connect continues its rapid advancement, delivering substantial improvements:

  • A new lightweight Python client (pyspark-client) at just 1.5 MB.
  • An additional release tarball with Spark Connect enabled by default.
  • Full API compatibility for the Java client.
  • A new spark.api.mode configuration to easily turn on/off Spark Connect for your applications.
  • Greatly expanded API coverage.
  • ML on Spark Connect.
  • A new client implementation for Swift.

Spark SQL is significantly enriched with powerful new features designed to boost expressiveness and versatility for SQL workloads, such as VARIANT data type support, SQL user-defined functions, session variables, pipe syntax, and string collation.

PySpark sees continuous dedication to both its functional breadth and the overall developer experience, bringing a native plotting API, a new Python Data Source API, support for Python UDTFs, and unified profiling for PySpark UDFs, alongside numerous other enhancements.

Structured Streaming evolves with key additions that provide greater control and ease of debugging, notably the introduction of the Arbitrary State API v2 for more flexible state management and the State Data Source for easier debugging.

To download Apache Spark 4.0.0, please visit the downloads page. For detailed changes, you can consult JIRA. We have also curated a list of high-level changes here, grouped by major modules.

Core and Spark SQL Highlights

Spark Core

Spark SQL

Features

Functions

  • [SPARK-52016] New built-in functions in Spark 4.0
  • [SPARK-44001] Add option to allow unwrapping protobuf well-known wrapper types
  • [SPARK-43427] spark protobuf: allow upcasting unsigned integer types
  • [SPARK-44983] Convert binary to string by to_char for the formats: hex, base64, utf-8
  • [SPARK-44868] Convert datetime to string by to_char/to_varchar
  • [SPARK-45796] Support MODE() WITHIN GROUP (ORDER BY col)
  • [SPARK-48658] Encode/Decode functions report coding errors instead of mojibake
  • [SPARK-45034] Support deterministic mode function
  • [SPARK-44778] Add the alias TIMEDIFF for TIMESTAMPDIFF
  • [SPARK-47497] Make to_csv support arrays/maps/binary as pretty strings
  • [SPARK-44840] Make array_insert() 1-based for negative indexes

Query optimization

  • [SPARK-46946] Supporting broadcast of multiple filtering keys in DynamicPruning
  • [SPARK-48445] Don’t inline UDFs with expansive children
  • [SPARK-46941] Prevent insertion of window group limit node with SizeBasedWindowFunction
  • [SPARK-46707] Add throwable field to expressions to improve predicate pushdown
  • [SPARK-47511] Canonicalize WITH expressions by reassigning IDs
  • [SPARK-46502] Support timestamp types in UnwrapCastInBinaryComparison
  • [SPARK-46069] Support unwrap timestamp type to date type
  • [SPARK-45606] Release restrictions on multi-layer runtime filter
  • [SPARK-45909] Remove NumericType cast if it can safely up-cast in IsNotNull

Query execution

  • [SPARK-45592] Correctness issue in AQE with InMemoryTableScanExec
  • [SPARK-50258] Fix output column order changed issue after AQE
  • [SPARK-46693] Inject LocalLimitExec when matching OffsetAndLimit or LimitAndOffset
  • [SPARK-48873] Use UnsafeRow in JSON parser
  • [SPARK-45452] Improve InMemoryFileIndex to use FileSystem.listFiles API
  • [SPARK-48649] Add ignoreInvalidPartitionPaths configs for skipping invalid partition paths
  • [SPARK-45882] BroadcastHashJoinExec propagate partitioning should respect CoalescedHashPartitioning

Spark Connectors

Data Source V2 framework

Hive Catalog

XML

CSV

  • [SPARK-46862] Disable CSV column pruning in multi-line mode
  • [SPARK-46890] Fix CSV parsing bug with default values and column pruning
  • [SPARK-50616] Add File Extension Option to CSV DataSource Writer
  • [SPARK-49125] Allow duplicated column names in CSV writing
  • [SPARK-49016] Restore behavior for queries from raw CSV files
  • [SPARK-48807] Binary support for CSV datasource
  • [SPARK-48602] Make csv generator support different output style via spark.sql.binaryOutputStyle

ORC

Avro

JDBC

Other notable Spark Connectors changes

  • [SPARK-45905] Least common type between decimal types should retain integral digits first
  • [SPARK-45786] Fix inaccurate Decimal multiplication and division results
  • [SPARK-50705] Make QueryPlan lock‑free
  • [SPARK-46743] Fix corner-case with COUNT + constant folding subquery
  • [SPARK-47509] Block subquery expressions in lambda/higher-order functions for correctness
  • [SPARK-48498] Always do char padding in predicates
  • [SPARK-45915] Treat decimal(x, 0) the same as IntegralType in PromoteStrings
  • [SPARK-46220] Restrict charsets in decode()
  • [SPARK-45816] Return NULL when overflowing during casting from timestamp to integers
  • [SPARK-45586] Reduce compiler latency for plans with large expression trees
  • [SPARK-45507] Correctness fix for nested correlated scalar subqueries with COUNT aggregates
  • [SPARK-44550] Enable correctness fixes for null IN (empty list) under ANSI
  • [SPARK-47911] Introduces a universal BinaryFormatter to make binary output consistent

PySpark Highlights

DataFrame APIs and Features

Pandas API on Spark

Other notable PySpark changes

Structured Streaming Highlights

Other notable Streaming changes

  • [SPARK-44865] Make StreamingRelationV2 support metadata column
  • [SPARK-45080] Explicitly call out support for columnar in DSv2 streaming data sources
  • [SPARK-45178] Fallback to execute a single batch for Trigger.AvailableNow with unsupported sources
  • [SPARK-45415] Allow selective disabling of “fallocate” in RocksDB statestore
  • [SPARK-45503] Add Conf to Set RocksDB Compression
  • [SPARK-45511] State Data Source - Reader
  • [SPARK-45558] Introduce a metadata file for streaming stateful operator
  • [SPARK-45794] Introduce state metadata source to query the streaming state metadata information
  • [SPARK-45815] Provide an interface for other Streaming sources to add _metadata columns
  • [SPARK-45845] Add number of evicted state rows to streaming UI
  • [SPARK-46641] Add maxBytesPerTrigger threshold
  • [SPARK-46816] Add base support for new arbitrary state management operator (multiple state variables/column families)
  • [SPARK-46865] Add Batch Support for TransformWithState Operator
  • [SPARK-46906] Add a check for stateful operator change for streaming
  • [SPARK-46961] Use ProcessorContext to store and retrieve handle
  • [SPARK-46962] Add interface for Python streaming data source & worker
  • [SPARK-47107] Partition reader for Python streaming data sources
  • [SPARK-47273] Python data stream writer interface
  • [SPARK-47553] Add Java support for transformWithState operator APIs
  • [SPARK-47653] Add support for negative numeric types and range scan key encoder
  • [SPARK-47733] Add custom metrics for transformWithState operator part of query progress
  • [SPARK-47960] Allow chaining other stateful operators after transformWithState
  • [SPARK-48447] Check StateStoreProvider class before constructor
  • [SPARK-48569] Handle edge cases in query.name for streaming queries
  • [SPARK-48589] Add snapshotStartBatchId / snapshotPartitionId for state data source (see SQL)
  • [SPARK-48589] Add snapshotStartBatchId / snapshotPartitionId options to state data source
  • [SPARK-48726] Create StateSchemaV3 file for TransformWithStateExec
  • [SPARK-48742] Virtual Column Family for RocksDB (arbitrary stateful API v2)
  • [SPARK-48755] transformWithState pyspark base implementation and ValueState support
  • [SPARK-48772] State Data Source Change Feed Reader Mode
  • [SPARK-48836] Integrate SQL schema with state schema/metadata for TWS operator
  • [SPARK-48849] Create OperatorStateMetadataV2 for TransformWithStateExec operator
  • [SPARK-48931] Reduce Cloud Store List API cost for state-store maintenance
  • [SPARK-49021] Add support for reading transformWithState value state variables with state data source reader
  • [SPARK-49048] Add support for reading operator metadata at given batch id
  • [SPARK-49191] Read transformWithState map state with state data source
  • [SPARK-49259] Size-based partition creation during Kafka read
  • [SPARK-49411] Communicate State Store Checkpoint ID
  • [SPARK-49463] ListState support in TransformWithStateInPandas
  • [SPARK-49467] Add state data source reader for list state
  • [SPARK-49513] Add timer support in transformWithStateInPandas
  • [SPARK-49630] Add flatten option for collection types in state data source reader
  • [SPARK-49656] Support state variables with value state collection types
  • [SPARK-49676] Chaining of operators in transformWithStateInPandas
  • [SPARK-49699] Disable PruneFilters for streaming workloads
  • [SPARK-49744] TTL support for ListState in TransformWithStateInPandas
  • [SPARK-49745] Read registered timers in transformWithState
  • [SPARK-49802] Add support for read change feed for map/list types
  • [SPARK-49846] Add numUpdatedStateRows/numRemovedStateRows metrics
  • [SPARK-49883] State Store Checkpoint Structure V2 Integration with RocksDB and RocksDBFileManager
  • [SPARK-50017] Support Avro encoding for TransformWithState operator
  • [SPARK-50035] Explicit handleExpiredTimer function in the stateful processor
  • [SPARK-50128] Add handle APIs using implicit encoders
  • [SPARK-50152] Support handleInitialState with state data source reader
  • [SPARK-50194] Integration of New Timer API and Initial State API
  • [SPARK-50378] Add custom metric for time spent populating initial state
  • [SPARK-50428] Support TransformWithStateInPandas in batch queries
  • [SPARK-50573] Adding State Schema ID to State Rows for schema evolution
  • [SPARK-50714] Enable schema evolution for TransformWithState with Avro encoding

Spark ML Highlights

Spark UX Highlights

Other notable Spark UX changes

Spark Connect Highlights

  • [SPARK-49248] Scala Client Parity with existing Dataset/DataFrame API
  • [SPARK-48918] Create a unified SQL Scala interface shared by regular SQL and Connect
  • [SPARK-50812] Support pyspark.ml on Connect
  • [SPARK-47908] Parent classes for Spark Connect and Spark Classic
  • [SPARK-50605] Add spark.api.mode for better compatibility with Spark Classic

Other Spark Connect changes and improvements

Build and Others

Version upgrade of Java and Scala libraries

Library Name Version Change
activation 1.1.1 -> REMOVED
aircompressor 0.27 -> 2.0.2
algebra 2.0.1 -> 2.8.0
aliyun-sdk-oss 3.13.0 -> 3.13.2
antlr4-runtime 4.9.3 -> 4.13.1
aopalliance-repackaged 2.6.1 -> 3.0.6
arrow-format 12.0.1 -> 18.1.0
arrow-memory-core 12.0.1 -> 18.1.0
arrow-memory-netty 12.0.1 -> 18.1.0
arrow-memory-netty-buffer-patch -> 18.1.0 (NEW)
arrow-vector 12.0.1 -> 18.1.0
audience-annotations 0.5.0 -> 0.12.0
avro 1.11.4 -> 1.12.0
avro-ipc 1.11.4 -> 1.12.0
avro-mapred 1.11.4 -> 1.12.0
aws-java-sdk-bundle 1.12.262 -> REMOVED
bcprov-jdk18on -> 1.80 (NEW)
bonecp 0.8.0.RELEASE -> REMOVED
bundle -> 2.25.53 (NEW)
cats-kernel 2.1.1 -> 2.8.0
checker-qual -> 3.43.0 (NEW)
chill 0.10.0 -> 0.10.0
commons-cli 1.5.0 -> 1.9.0
commons-codec 1.16.1 -> 1.17.2
commons-compress 1.23.0 -> 1.27.1
commons-io 2.16.1 -> 2.18.0
commons-lang3 3.12.0 -> 3.17.0
commons-text 1.10.0 -> 1.13.0
curator-client 2.13.0 -> 5.7.1
curator-framework 2.13.0 -> 5.7.1
curator-recipes 2.13.0 -> 5.7.1
datasketches-java 3.3.0 -> 6.1.1
datasketches-memory 2.1.0 -> 3.0.2
derby 10.14.2.0 -> 10.16.1.1
derbyshared -> 10.16.1.1 (NEW)
derbytools -> 10.16.1.1 (NEW)
error_prone_annotations -> 2.36.0 (NEW)
esdk-obs-java -> 3.20.4.2 (NEW)
failureaccess -> 1.0.2 (NEW)
flatbuffers-java 1.12.0 -> 24.3.25
gcs-connector hadoop3-2.2.14 -> hadoop3-2.2.26
gson 2.2.4 -> 2.11.0
guava 14.0.1 -> 33.4.0-jre
hadoop-aliyun 3.3.4 -> 3.4.1
hadoop-annotations 3.3.4 -> 3.4.1
hadoop-aws 3.3.4 -> 3.4.1
hadoop-azure 3.3.4 -> 3.4.1
hadoop-azure-datalake 3.3.4 -> 3.4.1
hadoop-client-api 3.3.4 -> 3.4.1
hadoop-client-runtime 3.3.4 -> 3.4.1
hadoop-cloud-storage 3.3.4 -> 3.4.1
hadoop-huaweicloud -> 3.4.1 (NEW)
hadoop-openstack 3.3.4 -> REMOVED
hadoop-shaded-guava 1.1.1 -> 1.3.0
hadoop-yarn-server-web-proxy 3.3.4 -> REMOVED
hive-beeline 2.3.9 -> 2.3.10
hive-cli 2.3.9 -> 2.3.10
hive-common 2.3.9 -> 2.3.10
hive-exec 2.3.9 -> 2.3.10
hive-jdbc 2.3.9 -> 2.3.10
hive-llap-common 2.3.9 -> REMOVED
hive-metastore 2.3.9 -> 2.3.10
hive-serde 2.3.9 -> 2.3.10
hive-service-rpc 3.1.3 -> 4.0.0
hive-shims 2.3.9 -> 2.3.10
hive-shims-0.23 2.3.9 -> 2.3.10
hive-shims-common 2.3.9 -> 2.3.10
hive-shims-scheduler 2.3.9 -> 2.3.10
hk2-api 2.6.1 -> 3.0.6
hk2-locator 2.6.1 -> 3.0.6
hk2-utils 2.6.1 -> 3.0.6
icu4j -> 76.1 (NEW)
istack-commons-runtime 3.0.8 -> 4.1.2
ivy 2.5.1 -> 2.5.3
j2objc-annotations -> 3.0.0 (NEW)
jackson-annotations 2.15.2 -> 2.18.2
jackson-core 2.15.2 -> 2.18.2
jackson-core-asl 1.9.13 -> REMOVED
jackson-databind 2.15.2 -> 2.18.2
jackson-dataformat-cbor 2.15.2 -> 2.18.2
jackson-dataformat-yaml 2.15.2 -> 2.18.2
jackson-datatype-jsr310 2.15.2 -> 2.18.2
jackson-mapper-asl 1.9.13 -> REMOVED
jackson-module-scala 2.15.2 -> 2.18.2
jakarta.activation-api -> 2.1.3 (NEW)
jakarta.annotation-api 1.3.5 -> 2.1.1
jakarta.inject 2.6.1 -> REMOVED
jakarta.inject-api -> 2.0.1 (NEW)
jakarta.servlet-api 4.0.3 -> 5.0.0
jakarta.validation-api 2.0.2 -> 3.0.2
jakarta.ws.rs-api 2.1.6 -> 3.0.0
jakarta.xml.bind-api 2.3.2 -> 4.0.2
java-diff-utils -> 4.15 (NEW)
java-xmlbuilder -> 1.2 (NEW)
javassist 3.29.2-GA -> 3.30.2-GA
javax.servlet-api 4.0.1 -> REMOVED
jaxb-api 2.2.11 -> REMOVED
jaxb-core -> 4.0.5 (NEW)
jaxb-runtime 2.3.2 -> 4.0.5
jcl-over-slf4j 2.0.7 -> 2.0.16
jersey-client 2.40 -> 3.0.16
jersey-common 2.40 -> 3.0.16
jersey-container-servlet 2.40 -> 3.0.16
jersey-container-servlet-core 2.40 -> 3.0.16
jersey-hk2 2.40 -> 3.0.16
jersey-server 2.40 -> 3.0.16
jettison 1.1 -> 1.5.4
jetty-util 9.4.56.v20240826 -> 11.0.24
jetty-util-ajax 9.4.56.v20240826 -> 11.0.24
jjwt-api -> 0.12.6 (NEW)
jjwt-impl -> 0.12.6 (NEW)
jjwt-jackson -> 0.12.6 (NEW)
jline 2.14.6 -> 3.27.1
joda-time 2.12.5 -> 2.13.0
json4s-ast 3.7.0-M11 -> 4.0.7
json4s-core 3.7.0-M11 -> 4.0.7
json4s-jackson 3.7.0-M11 -> 4.0.7
json4s-jackson-core -> 4.0.7 (NEW)
json4s-scalap 3.7.0-M11 -> 4.0.7
jul-to-slf4j 2.0.7 -> 2.0.16
kryo-shaded 4.0.2 -> 4.0.3
kubernetes-client 6.7.2 -> 7.1.0
kubernetes-client-api 6.7.2 -> 7.1.0
kubernetes-httpclient-okhttp 6.7.2 -> REMOVED
kubernetes-httpclient-vertx -> 7.1.0 (NEW)
kubernetes-model-admissionregistration 6.7.2 -> 7.1.0
kubernetes-model-apiextensions 6.7.2 -> 7.1.0
kubernetes-model-apps 6.7.2 -> 7.1.0
kubernetes-model-autoscaling 6.7.2 -> 7.1.0
kubernetes-model-batch 6.7.2 -> 7.1.0
kubernetes-model-certificates 6.7.2 -> 7.1.0
kubernetes-model-common 6.7.2 -> 7.1.0
kubernetes-model-coordination 6.7.2 -> 7.1.0
kubernetes-model-core 6.7.2 -> 7.1.0
kubernetes-model-discovery 6.7.2 -> 7.1.0
kubernetes-model-events 6.7.2 -> 7.1.0
kubernetes-model-extensions 6.7.2 -> 7.1.0
kubernetes-model-flowcontrol 6.7.2 -> 7.1.0
kubernetes-model-gatewayapi 6.7.2 -> 7.1.0
kubernetes-model-metrics 6.7.2 -> 7.1.0
kubernetes-model-networking 6.7.2 -> 7.1.0
kubernetes-model-node 6.7.2 -> 7.1.0
kubernetes-model-policy 6.7.2 -> 7.1.0
kubernetes-model-rbac 6.7.2 -> 7.1.0
kubernetes-model-resource 6.7.2 -> 7.1.0
kubernetes-model-scheduling 6.7.2 -> 7.1.0
kubernetes-model-storageclass 6.7.2 -> 7.1.0
libthrift 0.12.0 -> 0.16.0
listenablefuture -> 9999.0-empty-to-avoid-conflict-with-guava (NEW)
log4j-1.2-api 2.20.0 -> 2.24.3
log4j-api 2.20.0 -> 2.24.3
log4j-core 2.20.0 -> 2.24.3
log4j-layout-template-json -> 2.24.3 (NEW)
log4j-slf4j2-impl 2.20.0 -> 2.24.3
logging-interceptor 3.12.12 -> REMOVED
mesos 1.4.3 -> REMOVED
metrics-core 4.2.19 -> 4.2.30
metrics-graphite 4.2.19 -> 4.2.30
metrics-jmx 4.2.19 -> 4.2.30
metrics-json 4.2.19 -> 4.2.30
metrics-jvm 4.2.19 -> 4.2.30
netty-all 4.1.96.Final -> 4.1.118.Final
netty-buffer 4.1.96.Final -> 4.1.118.Final
netty-codec 4.1.96.Final -> 4.1.118.Final
netty-codec-dns -> 4.1.118.Final (NEW)
netty-codec-http 4.1.96.Final -> 4.1.118.Final
netty-codec-http2 4.1.96.Final -> 4.1.118.Final
netty-codec-socks 4.1.96.Final -> 4.1.118.Final
netty-common 4.1.96.Final -> 4.1.118.Final
netty-handler 4.1.96.Final -> 4.1.118.Final
netty-handler-proxy 4.1.96.Final -> 4.1.118.Final
netty-resolver 4.1.96.Final -> 4.1.118.Final
netty-resolver-dns -> 4.1.118.Final (NEW)
netty-tcnative-boringssl-static -> 2.0.70.Final (NEW)
netty-tcnative-classes -> 2.0.70.Final (NEW)
netty-transport 4.1.96.Final -> 4.1.118.Final
netty-transport-classes-epoll 4.1.96.Final -> 4.1.118.Final
netty-transport-classes-kqueue 4.1.96.Final -> 4.1.118.Final
netty-transport-native-epoll 4.1.96.Final -> 4.1.118.Final
netty-transport-native-kqueue 4.1.96.Final -> 4.1.118.Final
netty-transport-native-unix-common 4.1.96.Final -> 4.1.118.Final
orc-core 1.9.6 -> 2.1.2
orc-format -> 1.1.0 (NEW)
orc-mapreduce 1.9.6 -> 2.1.2
orc-shims 1.9.6 -> 2.1.2
parquet-column 1.13.1 -> 1.15.2
parquet-common 1.13.1 -> 1.15.2
parquet-encoding 1.13.1 -> 1.15.2
parquet-format-structures 1.13.1 -> 1.15.2
parquet-hadoop 1.13.1 -> 1.15.2
parquet-jackson 1.13.1 -> 1.15.2
pickle 1.3 -> 1.5
py4j 0.10.9.7 -> 0.10.9.9
rocksdbjni 8.3.2 -> 9.8.4
RoaringBitmap 0.9.45 -> 1.3.0
scala-collection-compat 2.7.0 -> 2.7.0
scala-compiler 2.12.18 -> 2.13.16
scala-library 2.12.18 -> 2.13.16
scala-parallel-collections -> 1.2.0 (NEW)
scala-parser-combinators 2.3.0 -> 2.4.0
scala-reflect 2.12.18 -> 2.13.16
scala-xml 2.1.0 -> 2.3.0
shims 0.9.45 -> REMOVED
slf4j-api 2.0.7 -> 2.0.16
snakeyaml 2.0 -> 2.3
snakeyaml-engine 2.6 -> 2.9
snappy-java 1.1.10.5 -> 1.1.10.7
spire 0.17.0 -> 0.18.0
spire-macros 0.17.0 -> 0.18.0
spire-platform 0.17.0 -> 0.18.0
spire-util 0.17.0 -> 0.18.0
stream 2.9.6 -> 2.9.8
threeten-extra 1.7.1 -> 1.8.0
tink 1.9.0 -> 1.16.0
transaction-api 1.1 -> REMOVED
vertx-auth-common -> 4.5.12 (NEW)
vertx-core -> 4.5.12 (NEW)
vertx-web-client -> 4.5.12 (NEW)
vertx-web-common -> 4.5.12 (NEW)
wildfly-openssl 1.0.7.Final -> 2.2.5.Final
xbean-asm9-shaded 4.23 -> 4.26
xmlschema-core -> 2.3.1 (NEW)
xz 1.9 -> 1.10
zjsonpatch 0.3.0 -> 7.1.0
zookeeper 3.6.3 -> 3.9.3
zookeeper-jute 3.6.3 -> 3.9.3
zstd-jni 1.5.5-4 -> 1.5.6-9

Credits

Last but not least, this release would not have been possible without the following contributors: Aleksei Shishkin, Adam Binford, Aiden Dong, Albert Ziegler, Alden Lau, Aleksandar Tomic, Alessandro Bellina, Alex Khakhlyuk, Alice Sayutina, Allison Wang, Amanda Liu, Amy Tsai, Andrej Gobeljić, Andrew Xue, Andrey Gubichev, Andy Lam, Anish Shrigondekar, Ankur Dave, Anthony Wainer, Anton Lykov, Anton Okolnychyi, Arzav Jain, Attila Zsolt Piros, Avery Qi, Babatunde Micheal Okutubo, Bhuwan Sahni, Bill Schneider, BingKun Pan, Binjie Yang, Biruk Tesfaye, Bjørn Jørgensen, Bo Gao, Bo Xiong, Bo Zhang, Bobby Wang, Bowen Liang, Bruce Robbins, Burak Yavuz, Carter Fendley, Chaerim Yeo, Changgyoo Park, Chao Sun, Chaoqin Li, Cheng Pan, Chenghao Lyu, Chenhao Li, Chenyu Zheng, Chirag Singh, Chloe He, Chris Nauroth, Chris Twiner, Christos Stavrakakis, Cosmin Dumitru, Costas Zarifis, Cuong Nguyen, Daniel Tenedorio, David Cashman, David Milicevic, Davin Tjong, Deepayan Patra, Dejan Krakovic, Dereck Li, Desmond Cheong, Dmitry Zhyhimont, Dmytro Tsyliuryk, Dongjoon Hyun, Dušan Tišma, Eduard Tudenhoefner, Emil Ejbyfeldt, Enrico Minack, Enrique Rebollo, Eren Avsarogullari, Eric Blanco, Eric Marnadi, Eric Maynard, Evan Wu, Fanyue Xia, Fokko Driesprong, Frank Wong, Fredrik Klauss, Gabor Roczei, Gabriel Dahia, Garland Zhang, Gene Pang, Gengliang Wang, Giambattista Bloisi, Gideon P, Gideon Potok, Guihua Wen, Gurpreet Singh, Haejoon Lee, Haiyang Sun, Hannah Amundson, Hanzhong Yuan, Haoyu Qi, Haoyu Weng, Harsh Motwani, Harsh Panchal, Harunobu Daikoku, Hasnain Lakhani, Hayssam Saleh, Helin Jin, Herman Van Hovell, Himadri Pal, HiuFung Kwok, Holden Karau, Huanli Wang, Huaxin Gao, Hubert Kaczmarczyk, Huw Campbell, Hyukjin Kwon, Ian Cook, Ismaël Mejía, Ivan Jevtic, Ivan Mitic, Ivan Sadikov, Izek Greenfield, Jack Chen, Jackie Zhang, Jacob Zheng, Jared Wang, Jason Li, Jean-Francois Desjeans Gauthier, Jerry Peng, Jerry Zhou, Jia Fan, Jiaan Geng, Jiaheng Tang, Jiale Tan, Jiashen Cao, Jiayi Liu, Jim Baugh, Jing Zhan, Jinhai Chen, Johan Lasperas, Jonathan Albrecht, Josh Rosen, Jovan Markovic, Jovan Pavlovic, João Correia, Julek Sompolski, Juliusz Sompolski, Junbo Wang, Junfan Zhang, Jungtaek Lim, Junqing Li, Junyu Chen, Justontheway, Kaashif Hymabaccus, Kaifei Yi, Karim Ramadan, Kaz, Kazuyuki Tanimura, Kelvin Jiang, Kent Yao, Kevin Nacios, Khalid Mammadov, Kivinsae Fang, Knight Chess, Kousuke Saruta, Kris Mok, Kun Wan, Lantao Jin, Liang-Chi Hsieh, Lingkai Kong, Linhong Liu, Liu Cao, Livia Zhu, Longfei Jiang, Luca Canali, Lucy Yao, Maciej Szymkiewicz, Mahesh Kumar Behera, Maksim Konstantinov, Mark Andreev, Mark Jarvin, Marko Ilić, Marko Nikacevic, Martin Grund, Maryann Xue, Mathew Jacob, Matt Braymer-Hayes, Max Gekk, Mayur Bhosale, Menelaos Karavelas, Mengran Lan, Mete Can Akar, Michael Chen, Michael Zhang, Michał Kimborowicz, Mihailo Aleksic, Mihailo Milosevic, Mihailo Timotic, Mikhail Nikoliukin, Milan Cupac, Milan Dankovic, Milan Stefanovic, Min Zhao, Mingkang Li, Mingliang Zhu, Momcilo Mrkaic, Motoyuki Kimura, Mridul Muralidharan, Nebojsa Savic, Neil Ramaswamy, Nemanja Boric, Nemanja Petrovic, Nicholas Chammas, Nicholas Jiang, Nick Young, Nicolas Fraison, Nikhil Sheoran, Nikola Mandic, Niranjan Jayakar, Ole Sasse, Oleksiy Dyagilev, Pablo Langa, Paddy Xu, Parth Chandra, Parth Upadhyay, Patrick Marx, Paul Staab, Petar Vasiljevic, Peter Kaszt, Peter Toth, Phil Dakin, Phil Walker, Ping Xu, Prashanth Menon, Prathit Malik, Qi Tan, Qi Zhu, Qiang Yang, Qingbo Jiao, Raghu Angadi, Rameshkrishnan Muthusamy, Rastko Sapic, Ravi Jain, Raza Jafri, Reza Safi, Richard Chen, Riya Verma, Rob Reeves, Robert (Bobby) Evans, Robert Dillitz, Ron Serruya, Rui Wang, Ruifeng Zheng, Russell Spitzer, Ruzel Ibragimov, Saidatt Sinai Amonkar, Saksham Garg, Sakthi, Sakthi Vel, Sander Goos, Sandip Agarwala, Scott Schenkein, Sean Owen, Sebastian Hillig, Serge Rielau, Shaofeng Li, Shaoyun Chen, Shu Wang, Shuiahu Xie, Shujing Yang, Shuyan Zhang, Shuyou Dong, Siying Dong, Stefan Bukorovic, Stefan Kandic, Steve Loughran, Steve Weis, Stevo Mitric, Subham Singhal, Sumeet Varma, Sunan Xiang, Supun Nakandala, Szehon Ho, Szilard Miko, Takawa Akirayo, Takuya Ueshin, Tanel Kiis, Tao Li, Ted Jenks, Tengfei Huang, Terry Kim, Terry Wang, Thang Long VU, Thomas Hart, Tianhan Hu, Tigran Manasyan, Tim Lee, Tinglong Liao, Tom Sisso, Tom Van Bussel, Tong Wei, Tuan Pham, Uros Bojanic, Uros Stankovic, Utkarsh Agarwal, Vadim Patsalo, Valentin, Venkata Sai Akhil Gudesa, Viktor Lučić, Vinod KC, Vitalii Li, Vlad Rozov, Vladan Vasić, Vladimir Golubev, Vsevolod Stepanov, Wan Kun, Warren Zhu, Wei Guo, Wei Liu, Weichen Xu, Weitao Wen, Wenchen Fan, Willi Raschkowski, William Hyun, Wonseok Yang, Xi Chen, Xi Liang, Xi Lyu, Xianyang Liu, Xiaodong Huan, Xiaoguang Sun, Xiaoping Huang, Xiduo You, Xingbo Jiang, Xinrong Meng, Xinyi Yu, Xinyu Zou, Yanan Xin, Yang Jie, Yannis Sismanis, Yanxiang Cui, Yaohua Zhao, Yi Wu, Yi Zhu, Yifei Wei, Yifeng Hua, Yihong He, Yongyuan Liang, Yousof Hosny, Yu Xu, Yuanjian Li, Yuchen Liu, Yuchuan Huang, Yuming Wang, Zachary Steudel, Zamil Majdy, Zerui Bao, Zeyu Chen, Zhang Liang, Zhen Li, Zhen Wang, Zhihong Yu, Zhiming She, Zhipeng Mao, Zhou JIANG, Zhou Yifan, Zhyhimont Dmitry, Ziqi Liu, Zongze Li, advancedxy, alex35736, antban, camilesing, chenyu, dengziming, dev-lpq, hongshaoyang, huangsheng, huangzhir, jjayadeep06, junyuc25, laglangyue, morvenhuang, rorueda, xin-aurora, xleoken, xunxunmimi5577, yabola, zekai-li


Spark News Archive