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:
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.
ShuffleCleanupModeTaskInfo.accumulables() lifespanspark.shuffle.service.removeShuffle by defaultspark.metrics.appStatusSource.enabled by defaultspark.stage.ignoreDecommissionFetchFailure by defaultspark.checkpoint.dir configspark.ui.jettyStopTimeout to set Jetty server stop timeoutTransportContextspark.shuffle.service.db.backend default value to ROCKSDBMetricFilter in StatsdSinkfinalizeShuffleMerge Processing to Dedicated Thread PoolsLiveStageMetrics.accumIdsToMetricTypeSQL MERGE syntax to enable schema evolutionGROUP BY for MapTypeGROUP BY with MapType nested inside complex typeINSERTparse_jsonGROUP BY calendar_interval_typeWHERE clauseWITH OPTIONS syntaxEXECUTE IMMEDIATESQL supportMergeInto in DataFrameWriterV2binary to string by to_char for the formats: hex, base64, utf-8datetime to string by to_char/to_varcharMODE() WITHIN GROUP (ORDER BY col)TIMEDIFF for TIMESTAMPDIFFto_csv support arrays/maps/binary as pretty stringsarray_insert() 1-based for negative indexesDynamicPruningSizeBasedWindowFunctionWITH expressions by reassigning IDsUnwrapCastInBinaryComparisonNumericType cast if it can safely up-cast in IsNotNullInMemoryTableScanExecLocalLimitExec when matching OffsetAndLimit or LimitAndOffsetUnsafeRow in JSON parserInMemoryFileIndex to use FileSystem.listFiles APIignoreInvalidPartitionPaths configs for skipping invalid partition pathsBroadcastHashJoinExec propagate partitioning should respect CoalescedHashPartitioningspark.sql.catalog.spark_catalog supports builtin magic valueTableCatalog#loadTable should indicate if it’s for writingALTER NAMESPACE ... UNSET PROPERTIES in v2PERCENTILE_CONT and PERCENTILE_DISChive.thrift.client.maxmessage.sizeAvroDeserializerschema_of_avro (Scala side)to_avro and from_avro SQL functionsDatabricksDialect to handle SQL type conversionQueryPlan lock‑freeCOUNT + constant folding subqueryNULL when overflowing during casting from timestamp to integersCOUNT aggregatesIN (empty list) under ANSIBinaryFormatter to make binary output consistentcreateDataFrame and toPandas with ArrowaddArtifact(s) for PySparkmetadataColumn to PySpark DataFrameinterruptOperation for PySparkparse_json in PySparkzeroifnull and nullifzerodf.read APIDataset.isEmpty() by applying global limit 1clusterBy DataFrameWriter API for ScalagroupingSets operation in DataFrame API{Frame, Series}.to_hdfFrame.to_featherFrame.to_stataDataFrameGroupBy.corrjson_normalize for Pandas API on SparkassertDataFrameEqualconvert_dtypes, infer_objects, set_axis in fallback listcompute.ops_on_diff_frames by defaultps.sql in Spark Connectnumeric_onlyDataFrame.info(DataFrame|Series).between_timepd.date_rangeassertPandasOnSparkEqualDataFrame.get_dtype_counts from Pandas API on Sparkinplace parameter from CategoricalIndex APIscol_space parameter from to_latexSeries.betweenps.date_range & enable test MultiIndex when axis=1 for concatGroupBy.nth behavior to the latest PandasDataFrameGroupBy.sumInterrupt(Tag|All) APIs for PySparkBasePythonRunnerlistagg in PySparkclusterBy DataFrameWriter API for PythonDataFrame.mergeInto in PySparkspark.profile.render for SparkSession-based profilingparse_json alias in PySpark/dataframedict pairs in MapType schema inferenceTimestampNTZ schema inference with prefer_timestamp_ntzcreateDataFrame()dropDuplicates, dropDuplicatesWithinWatermark accept var-args[SPARK-50311] (add |
remove |
get |
clear)Tag(s) APIs |
deleteIfExists for TransformWithStateInPandassql()faulthandler a runtime configuration for Python execution in SQLDataType.fromDDL into PySparkssertSchemaEqualCalendarIntervalType to PySparkassertDataFrameEqualmaxBytesPerTrigger thresholdProcessorContext to store and retrieve handletransformWithState operator APIsStateStoreProvider class before constructorquery.name for streaming queriessnapshotStartBatchId / snapshotPartitionId for state data source (see SQL)TransformWithStateExectransformWithState pyspark base implementation and ValueState supportTransformWithStateExec operatortransformWithState value state variables with state data source readertransformWithState map state with state data sourceTransformWithStateInPandastransformWithStateInPandastransformWithStateInPandasPruneFilters for streaming workloadsTransformWithStateInPandastransformWithStatenumUpdatedStateRows/numRemovedStateRows metricsTransformWithState operatorhandleExpiredTimer function in the stateful processorTransformWithStateInPandas in batch queriesTransformWithState with Avro encodingStringIndexer support nested input columnsThreadInfo improvements for monitoring APIsSQLSTATE in error messagespark.eventLog.rolling.enabled by defaultdisplayOrder variable to WebUITab to specify the order in which tabs appearraise_error improvementThreadStackTraceLiveStageMetrics.accumIdsToMetricTypeQueryContext in SparkThrowable proto messageSQLSTATE mandatorySQLSTATE in error messageSqlState in SparkThrowable proto messagespark.eventLog.rolling.enabled by defaultspark.master.ui.historyServerUrl in ApplicationPageui-test module with Jest to test UI JavaScript codespark.ui.prometheus.enabled by defaultDataFrameQueryContext in Spark ConnectisStreaming in text representation of logical planjobGroupId to SparkListenerSQLExecutionStartgetCondition and deprecate getErrorClass in PySparkExceptionDataFrame.freqItems and DataFrame.stat.freqItemsDataFrame.sampleBy and DataFrame.stat.sampleByDataFrame.stat.covDataFrame.stat.corrDataFrame.approxQuantile and DataFrame.stat.approxQuantileWindow functionsGroupedData.{min, max, avg, sum}rollup, cube, and pivotDataFrame.randomSplitDataFrame.toformat_number functionSparkSession.stopColumn.astypeColumn.betweencall_udf functionunwrap_udt functiongetItem, getField, getitem, etc.)Column.nameColumn.{withField, dropFields}GroupedData.meanlog(arg1, arg2)SQLStringFormatter with WithRelationsbloomFilter function for DataFrameStatFunctionsmerge_asof in Spark ConnectMultiIndex for to_series() in Spark ConnectDataset.explode to Spark Connect Scala Clientsession_id in SPARK_REMOTE connection stringSparkSession.Builder methodsDataStreamWriter.foreachBatch(VoidFunction2)from_xml and schema_of_xml to pyspark, Spark Connect, and SQL functionsDataset.metadataColumn to Scala ClientDataFrame.foreachDataFrame.foreachPartitionfloor/round/bround now accept Column type scaleSeries.empty for Spark Connectfrom_xml support StructType schemamap and array parameters by sql()SPARK_CONNECT_USER_AGENT env variable and include environment specific attributesaddArtifactgrpcio\* to 1.59.3 for Python 3.12DataFrame.groupingSets in Python Spark ConnectDataset.groupingSets in Scala Spark Connect clientArtifactManager APIs to support custom target directoriesapplyInArrow to groupBy and cogroup in Spark ConnectmapInPandas/mapInArrow support ResourceProfiledumpPerfProfile and dumpMemoryProfiles of SparkSessionspark.profile.show/.dump for SparkSession-based profilinggetAll to spark.conf for feature parity with Scalaspark.profile.clear for SparkSession-based profilingdict as MapType from Pandas DataFrame (via new config)Dataset.observe for Scala ConnectSparkSession for ForEachBatch workerSparkConnectPlanner to pluginsCheckpoint and localCheckpoint in Spark ConnecttoColumn API in Spark Connectarray_remove, array_position, etc.)ExecutionInfo support for DataFrameDataFrame.mergeInto support for Spark Connect (Scala & Python)–remote support)addArtifact API to the Spark SQL CoreSparkSessionBuilder interfaceRuntimeConfig interfaceDataStreamReader interfaceStreamingQueryManager interfaceDataStreamWriter interfaceverifySchema parameter of createDataFrameStructType.toDDLpyspark.ml.connectColumn.isNaN in PySpark| 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 |
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