OK, so I think I've figured it partially out... Not very tidy but as this is a proof-of-concept I'll worry about tidy later... I unpacked the various jars as above, but in the end removed "cassandra-driver-core-2.1.3.jar" from the classpath and added it as a Maven dependency instead: <dependency> <groupId>com.datastax.cassandra</groupId> <artifactId>cassandra-driver-core</artifactId> <version>2.1.3</version></dependency>[/code]The jar doesn't come with all the dependencies needed - I was getting a ClassNotFound for log4j. Thinking I might try v3 of the driver next... Then I create my own connection to Cassandra, manually execute the query and then pass the ResultSet to the CassandraDataSource. Finally pass that in to the report and I get data. Cluster cluster = Cluster.builder().addContactPoint("localhost").build();Session session = cluster.connect("my_lovely_keyspace");ResultSet rs = session.execute("SELECT * FROM table");CassandraDataSource ds = new CassandraDataSource(rs);JasperPrint jp = JasperFillManager.fillReport(PATH_TO_COMPILED_REPORT, params, ds);File reportfile = new File("./" + UUID.randomUUID().toString() + ".report.html");JasperExportManager.exportReportToHtmlFile(jp, reportfile.getAbsolutePath());String report = Files.toString(reportfile, Charset.defaultCharset());.[/code]Of course this only helps because I know the CQL for the report so suggestions for a better way welcome.