Code Ownership

Ownership is measured by how many commits each author made to each file in the current tree. It highlights bus-factor risk (files only one person has ever touched) and where knowledge is concentrated. The bus factor is the smallest number of people who are, between them, primary owner of more than half of the files.

Files Tracked
27,599
in the current tree
Bus Factor
7
7 authors are primary owner of 14,080 of 27,599 files
Single-Owner Files
15,391
55.8% of tracked files
Contributors
2,833
authors who changed files

Bus factor risk — single-owner files

Files only one author has ever changed. The more a file has changed, the more knowledge is at risk if that person leaves.

FileSole ownerCommits
sql/core/src/test/resources/sql-tests/analyzer-results/st-functions.sql.outUros14
sql/core/src/test/resources/sql-tests/inputs/st-functions.sqlUros14
sql/core/src/test/resources/sql-tests/results/st-functions.sql.outUros14
sql/core/src/test/scala/org/apache/spark/sql/execution/datasources/ArchiveReadSuiteBase.scalaakshatshenoi-db10
python/pyspark/eval_handlers/tests/test_pandas_eval_type_handlers.pyYicong Huang9
python/pyspark/eval_handlers/__init__.pyYicong Huang9
resource-managers/kubernetes/core/src/main/scala/org/apache/spark/scheduler/cluster/k8s/ExecutorResizePlugin.scalaDongjoon Hyun9
resource-managers/kubernetes/core/src/test/scala/org/apache/spark/scheduler/cluster/k8s/ExecutorResizePluginSuite.scalaDongjoon Hyun9
python/pyspark/eval_handlers/_pandas.pyYicong Huang8
sql/core/src/main/scala/org/apache/spark/sql/execution/datasources/jdbc/connection/MariaDBConnectionProvider.scalaGabor Somogyi8
Table: the 100 most-changed of 15,391 single-owner files
FileSole ownerCommits
sql/core/src/test/resources/sql-tests/analyzer-results/st-functions.sql.outUros14
sql/core/src/test/resources/sql-tests/inputs/st-functions.sqlUros14
sql/core/src/test/resources/sql-tests/results/st-functions.sql.outUros14
sql/core/src/test/scala/org/apache/spark/sql/execution/datasources/ArchiveReadSuiteBase.scalaakshatshenoi-db10
python/pyspark/eval_handlers/tests/test_pandas_eval_type_handlers.pyYicong Huang9
python/pyspark/eval_handlers/__init__.pyYicong Huang9
resource-managers/kubernetes/core/src/main/scala/org/apache/spark/scheduler/cluster/k8s/ExecutorResizePlugin.scalaDongjoon Hyun9
resource-managers/kubernetes/core/src/test/scala/org/apache/spark/scheduler/cluster/k8s/ExecutorResizePluginSuite.scalaDongjoon Hyun9
python/pyspark/eval_handlers/_pandas.pyYicong Huang8
sql/core/src/main/scala/org/apache/spark/sql/execution/datasources/jdbc/connection/MariaDBConnectionProvider.scalaGabor Somogyi8
sql/core/src/main/scala/org/apache/spark/sql/execution/datasources/jdbc/connection/PostgresConnectionProvider.scalaGabor Somogyi8
sql/catalyst/benchmarks/InternalRowComparableWrapperBenchmark-jdk21-results.txtDongjoon Hyun7
sql/catalyst/benchmarks/InternalRowComparableWrapperBenchmark-results.txtDongjoon Hyun7
core/src/test/scala/org/apache/spark/deploy/master/PersistenceEngineBenchmark.scalaDongjoon Hyun7
mllib/src/main/scala/org/apache/spark/ml/util/ConnectHelper.scalaRuifeng Zheng7
sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/pipeOperators.scalaDaniel Tenedorio7
python/pyspark/eval_handlers/_base.pyYicong Huang6
python/pyspark/eval_handlers/tests/test_base_eval_type_handlers.pyYicong Huang6
python/pyspark/eval_handlers/tests/test_udtf_eval_type_handlers.pyYicong Huang6
sql/core/src/main/scala/org/apache/spark/sql/execution/datasources/SupportsArchiveFormat.scalaakshatshenoi-db6
sql/core/src/test/scala/org/apache/spark/sql/execution/datasources/CSVArchiveReadBase.scalaakshatshenoi-db6
sql/core/src/test/resources/sql-tests/inputs/binary.sqlKent Yao6
sql/core/src/main/scala/org/apache/spark/sql/execution/datasources/jdbc/connection/DB2ConnectionProvider.scalaGabor Somogyi6
python/pyspark/eval_handlers/_udtf.pyYicong Huang5
python/pyspark/eval_handlers/verification.pyYicong Huang5
resource-managers/kubernetes/core/src/test/scala/org/apache/spark/scheduler/cluster/k8s/ExecutorPVCResizePluginSuite.scalaDongjoon Hyun5
sql/connect/client/jvm/src/test/scala/org/apache/spark/sql/connect/DataFrameSuite.scalaRuifeng Zheng5
mllib/src/main/scala/org/apache/spark/ml/optim/aggregator/AFTBlockAggregator.scalaRuifeng Zheng5
mllib/src/main/scala/org/apache/spark/ml/optim/aggregator/BinaryLogisticBlockAggregator.scalaRuifeng Zheng5
sql/core/src/main/scala/org/apache/spark/sql/execution/BinByExec.scalaNikolina Vraneš5
sql/api/src/main/scala/org/apache/spark/sql/types/TimeType.scalaMax Gekk5
sql/core/src/test/resources/sql-tests/inputs/charvarchar-standard-semantics.sqlSerge Rielau5
sql/core/src/test/resources/sql-tests/results/charvarchar-standard-semantics.sql.outSerge Rielau5
docs/streaming/real-time-mode.mdBoyang Jerry Peng5
sql/core/src/test/scala/org/apache/spark/sql/execution/datasources/v2/state/StatePartitionAllColumnFamiliesReaderSuite.scalaZifei Feng5
python/conf_vscode/sitecustomize.pyTian Gao5
sql/core/src/test/scala/org/apache/spark/sql/execution/command/v2/AutoCdcParserSuite.scalaAndreas Neumann5
sql/api/src/main/scala/org/apache/spark/sql/types/GeometryType.scalaUros5
python/pyspark/eval_handlers/_elementwise.pyYicong Huang4
python/pyspark/eval_handlers/_stateful.pyYicong Huang4
python/pyspark/eval_handlers/utils.pyYicong Huang4
sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/xml/XmlInferSchemaTypeCastingSuite.scalaWenchen Fan4
resource-managers/kubernetes/core/src/main/scala/org/apache/spark/scheduler/cluster/k8s/ExecutorPVCResizePlugin.scalaDongjoon Hyun4
sql/core/benchmarks/RecursiveCTEBenchmark-jdk21-results.txtDongjoon Hyun4
sql/core/src/test/scala/org/apache/spark/sql/execution/metric/CustomMetricsSuite.scalaLiang-Chi Hsieh4
sql/catalyst/src/main/scala/org/apache/spark/sql/internal/connector/SupportsRuntimeCatalystFiltering.scalaSzehon Ho4
sql/catalyst/src/test/scala/org/apache/spark/sql/connector/catalog/InMemoryCatalystRuntimeFilterTable.scalaSzehon Ho4
mllib/src/main/scala/org/apache/spark/ml/optim/aggregator/HingeBlockAggregator.scalaRuifeng Zheng4
mllib/src/main/scala/org/apache/spark/ml/optim/aggregator/HuberBlockAggregator.scalaRuifeng Zheng4
mllib/src/main/scala/org/apache/spark/ml/optim/aggregator/LeastSquaresBlockAggregator.scalaRuifeng Zheng4
sql/core/src/main/scala/org/apache/spark/sql/execution/python/ExtractPythonUDFFromLambda.scalaHyukjin Kwon4
sql/core/src/main/java/org/apache/spark/sql/execution/datasources/parquet/LateMaterializationParquetRecordReader.javaPeter Toth4
sql/core/src/main/scala/org/apache/spark/sql/execution/datasources/parquet/ParquetStorageFilter.scalaPeter Toth4
sql/catalyst/src/main/java/org/apache/spark/sql/catalyst/expressions/DateTimeExpressionUtils.javaGengliang Wang4
sql/core/src/test/resources/sql-tests/inputs/try_aggregates.sqlGengliang Wang4
sql/core/src/test/scala/org/apache/spark/sql/execution/command/v1/AlterTableRenamePartitionSuite.scalaMax Gekk4
sql/core/src/main/scala/org/apache/spark/sql/execution/datasources/DaysWritable.scalaMax Gekk4
sql/api/src/main/scala/org/apache/spark/sql/catalyst/parser/SubstituteParmsAstBuilder.scalaSerge Rielau4
sql/core/src/test/scala/org/apache/spark/sql/JsonArraySuite.scalaGanesha S4
sql/pipelines/src/main/scala/org/apache/spark/sql/pipelines/autocdc/Scd2VersionMap.scalaAnishMahto4
sql/core/src/test/scala/org/apache/spark/sql/execution/benchmark/ConstantColumnVectorBenchmark.scalaYangJie4
sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/analysis/resolver/ExpressionResolutionValidator.scalaVladimir Golubev4
sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/analysis/resolver/DelegatesResolutionToExtensions.scalaVladimir Golubev4
python/run-with-vscode-breakpointsTian Gao4
udf/worker/core/src/main/scala/org/apache/spark/udf/worker/core/WorkerDispatcher.scalaHaiyang Sun4
sql/catalyst/src/main/java/org/apache/spark/sql/catalyst/util/Geo.javaUros4
sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/st/STExpressionUtils.scalaUros4
sql/core/src/test/scala/org/apache/spark/sql/execution/datasources/BinaryFileArchiveReadBase.scalaakshatshenoi-db4
sql/core/src/test/scala/org/apache/spark/sql/execution/datasources/TextArchiveReadBase.scalaakshatshenoi-db4
sql/core/src/test/scala/org/apache/spark/sql/execution/datasources/XMLArchiveReadBase.scalaakshatshenoi-db4
common/unsafe/src/main/java/org/apache/spark/unsafe/types/VariantVal.javachenhao-db4
sql/core/src/test/resources/sql-tests/analyzer-results/binary.sql.outKent Yao4
sql/core/src/test/resources/sql-tests/analyzer-results/binary_base64.sql.outKent Yao4
sql/core/src/test/resources/sql-tests/analyzer-results/binary_basic.sql.outKent Yao4
sql/core/src/test/resources/sql-tests/analyzer-results/binary_hex.sql.outKent Yao4
sql/core/src/test/resources/sql-tests/results/binary.sql.outKent Yao4
sql/core/src/test/resources/sql-tests/results/binary_base64.sql.outKent Yao4
sql/core/src/test/resources/sql-tests/results/binary_basic.sql.outKent Yao4
sql/core/src/test/resources/sql-tests/results/binary_hex.sql.outKent Yao4
core/src/main/resources/org/apache/spark/ui/static/flamegraph.jsKent Yao4
sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/catalog/UserDefinedFunctionErrors.scalaAllison Wang4
sql/catalyst/src/main/java/org/apache/spark/sql/connector/expressions/aggregate/Avg.javabeliefer4
python/docs/source/development/logger.rstHaejoon Lee4
sql/core/src/main/scala/org/apache/spark/sql/execution/datasources/jdbc/connection/OracleConnectionProvider.scalaGabor Somogyi4
sql/core/src/test/scala/org/apache/spark/sql/execution/datasources/jdbc/connection/PostgresConnectionProviderSuite.scalaGabor Somogyi4
python/pyspark/eval_handlers/_typing.pyYicong Huang3
python/pyspark/eval_handlers/_vanilla.pyYicong Huang3
python/pyspark/eval_handlers/tests/test_elementwise_eval_type_handlers.pyYicong Huang3
python/pyspark/eval_handlers/tests/test_stateful_eval_type_handlers.pyYicong Huang3
python/pyspark/eval_handlers/tests/test_vanilla_eval_type_handlers.pyYicong Huang3
sql/core/src/main/scala/org/apache/spark/sql/execution/datasources/v2/AlterV2ViewExec.scalaWenchen Fan3
sql/core/benchmarks/DecimalDivideBenchmark-jdk21-results.txtDongjoon Hyun3
sql/core/benchmarks/DecimalDivideBenchmark-jdk25-results.txtDongjoon Hyun3
sql/core/benchmarks/DecimalDivideBenchmark-results.txtDongjoon Hyun3
resource-managers/kubernetes/core/src/test/scala/org/apache/spark/deploy/k8s/KubernetesDriverSpecSuite.scalaDongjoon Hyun3
core/src/main/protobuf/buf.yamlDongjoon Hyun3
sql/core/src/test/scala/org/apache/spark/sql/connector/CreateTableLikeSuite.scalaLiang-Chi Hsieh3
sql/core/src/test/scala/org/apache/spark/sql/connector/GroupBasedRowLevelOperationCatalystRuntimeFilterSuite.scalaSzehon Ho3
sql/core/src/test/scala/org/apache/spark/sql/connector/RowLevelOperationCatalystRuntimeFilterSuiteBase.scalaSzehon Ho3
sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/plans/logical/GeneratedColumnExpression.scalaSzehon Ho3

Ownership by author

Primary owner = the author with the most commits to a file. Solely owned = files only that author has touched.

AuthorFiles ownedSolely ownedFiles touched
Michael Armbrust8,2238,0538,564
Paddy Xu1,28121,380
Hyukjin Kwon1,2368054,846
Yuchen Liu889883935
Dylan Wong846845897
Ruifeng Zheng8141642,676
YangJie791593,458
Dongjoon Hyun747842,977
Wenchen Fan6461092,768
Tian Gao511191,427
Yuming Wang474681,388
Max Gekk458571,627
Sean Owen375732,038
Kent Yao3641111,887
Jungtaek Lim320265998
panbingkun291371,436
Yi Wu28951,065
Serge Rielau28772985
Daoyuan Wang270265381
Cheng Hao269269411
Herman van Hövell2531741,433
Reynold Xin218261,437
Takeshi Yamamuro210176765
Anish Shrigondekar201172356
Xiangrui Meng1878632

Showing top 25 of 2833 contributors.

Most shared files

Files touched by the most people — shared code where changes are most likely to need coordination.

FileContributorsPrimary ownerOwner share
sql/catalyst/src/main/scala/org/apache/spark/sql/internal/SQLConf.scala270Wenchen Fan6.8%
pom.xml247Dongjoon Hyun21.0%
core/src/main/scala/org/apache/spark/SparkContext.scala205Reynold Xin6.3%
docs/configuration.md203Dongjoon Hyun6.3%
sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/analysis/Analyzer.scala196Wenchen Fan15.8%
project/SparkBuild.scala177YangJie9.2%
core/src/main/scala/org/apache/spark/util/Utils.scala175Dongjoon Hyun6.5%
common/utils/src/main/resources/error/error-conditions.json173Haejoon Lee6.4%
project/MimaExcludes.scala164Reynold Xin8.1%
sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/parser/AstBuilder.scala161Wenchen Fan8.5%
sql/core/src/test/scala/org/apache/spark/sql/SQLQuerySuite.scala145Reynold Xin7.4%
sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/optimizer/Optimizer.scala143Wenchen Fan9.3%
sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/analysis/FunctionRegistry.scala142Max Gekk5.9%
python/pyspark/sql/dataframe.py141Hyukjin Kwon13.4%
sql/catalyst/src/main/scala/org/apache/spark/sql/errors/QueryExecutionErrors.scala133Haejoon Lee11.3%
core/src/main/scala/org/apache/spark/internal/config/package.scala133Dongjoon Hyun13.9%
core/src/main/scala/org/apache/spark/scheduler/DAGScheduler.scala128Reynold Xin8.3%
docs/sql-programming-guide.md128Cheng Lian6.6%
sql/catalyst/src/main/scala/org/apache/spark/sql/errors/QueryCompilationErrors.scala122panbingkun9.0%
sql/core/src/main/scala/org/apache/spark/sql/execution/SparkStrategies.scala117Reynold Xin10.9%