zhengruifeng commented on PR #58302:
URL: https://github.com/apache/spark/pull/58302#issuecomment-5422736260

   Test coverage and GraphX-fork audit
   
   I compared this PR with the current GraphFrames checkout (`16a160b`) and 
checked the OSS CI run.
   
   Test coverage
   
   - Every public GraphFrames algorithm exposed by this PR is executed by at 
least one test.
   - The Scala GraphFrames suite passed in OSS CI: **325 succeeded, 0 failed, 0 
ignored**.
   - The dedicated `pyspark-graphframes` OSS job passed all three registered 
modules:
     - `pyspark.graphframes.tests.test_graphframe`
     - `pyspark.graphframes.tests.connect.test_parity_graphframe`
     - `pyspark.graphframes.tests.connect.test_all_algorithms`
   - Spark precompilation also passed.
   
   This is broad algorithm coverage, but it is not a complete copy of the 
upstream test tree:
   
   - Core Scala: 28 of 34 upstream test files have counterparts. The missing 
files are `SparkShimsSuite`, `BeliefPropagationSuite`, `GraphsSuite`, 
`TestLDBCCases`, `PropertyGraphFrameTest`, and `KMinSamplingSuite`.
   - The 18 suites for GraphFrames' private GraphX fork were intentionally not 
copied because this PR uses Spark's built-in GraphX and its existing tests.
   - Python upstream currently has 45 classic test functions plus 14 
PropertyGraph tests. This PR has 4 classic test functions plus 10 new grouped 
Connect test functions.
   - `KMinSampling` has indirect coverage through consumers, but its dedicated 
unit suite is absent. The Belief Propagation example and PropertyGraph APIs 
were not imported.
   - Therefore, having at least one test per exposed algorithm should not be 
interpreted as complete backend, parameter, error-path, or upstream test parity.
   
   GraphFrames GraphX fork versus Spark GraphX
   
   The GraphFrames fork is a renamed snapshot of GraphX, not a separate graph 
execution design: it duplicates 42 production files under 
`org.apache.spark.graphframes.graphx`. Its substantive divergences are:
   
   - Label propagation uses vector-based messages and deterministic 
tie-breaking.
   - Several implicit GraphX caches are removed, and Pregel message 
checkpointing behavior differs.
   - Shortest paths adds directed/undirected execution.
   - The fork currently lacks Spark's July 2026 SVD++ combiner correction.
   
   This PR deliberately uses canonical `org.apache.spark.graphx` instead of 
importing a second GraphX implementation. It preserves undirected shortest 
paths in the GraphFrames wrapper, does not carry the fork's 
label-propagation/cache changes, and benefits from Spark's newer SVD++ fix. Any 
generally useful GraphX changes should be proposed separately against Spark 
GraphX.
   
   At the time of this check, the GraphFrames Scala and Python jobs were green. 
The overall workflow was still running, with separate documentation and lint 
failures in GraphFrames code; no fixes or reruns were made as part of this 
audit.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


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

Reply via email to