Managed to get this working. The final code ended up being simple, but the configuration properties you need to set has changed across different versions of JanusGraph/Tinkerpop and finding the right combination was very difficult. Also strangely I needed to use a GraphFactory, not a JanusGraphFactory.
For Tinkerpop 3.3 with JanusGraph 1.0-SNAPSHOT (tinkerpop 3.3 patched in via pom), and Cassandra 2.2.9, the following code works for me within my existing SparkSession:
val gremlinSpark =Spark.create(spark.sparkContext) val sparkComputerConnection =GraphFactory.open(getSparkConfig) val traversalSource =sparkComputerConnection.traversal().withComputer(classOf[SparkGraphComputer])