Neo4j and Spark GraphX are meant for solving problem at different level and they are complimentary to each other.
They can be connected by Neo4j's Mazerunner extension:
Mazerunner is a Neo4j unmanaged extension and distributed graph
processing platform that extends Neo4j to do big data graph processing
jobs while persisting the results back to Neo4j.
Mazerunner uses a message broker to distribute graph processing jobs
to Apache Spark's GraphX module. When an agent job is dispatched, a
subgraph is exported from Neo4j and written to Apache Hadoop HDFS.
After Neo4j exports a subgraph to HDFS, a separate Mazerunner service
for Spark is notified to begin processing that data. The Mazerunner
service will then start a distributed graph processing algorithm using
Scala and Spark's GraphX module. The GraphX algorithm is serialized
and dispatched to Apache Spark for processing.
Once the Apache Spark job completes, the results are written back to
HDFS as a Key-Value list of property updates to be applied back to
Neo4j is then notified that a property update list is available from
Apache Spark on HDFS. Neo4j batch imports the results and applies the
updates back to the original graph.
Check out this tutorial to get an idea on how to combine the two: