J'utilise Apache Spark 2.1.0 et Cassandra 3.0.14. Dans mon code, je veux créer un lien entre Spark et Cassandra:NullpointerException lors de la création de session entre Apache Spark et Cassandra
...
SparkSession sparkSession = SparkSession.builder()
.appName(appName)
.config("spark.cassandra.connection.host", "localhost")
.config("spark.cassandra.connection.port", 9042)
.getOrCreate();
CassandraConnector cassandraConnector = CassandraConnector
.apply(sparkSession.sparkContext().getConf());
Session session = cassandraConnector.openSession();
ResultSet rs = session.execute("select * from myDB.myTable");
...
Quand je lance le code localement tout éclipse fonctionne très bien, mais quand je lance le pot-fichier sur mon serveur étincelle locale je reçois
Exception in thread "main" java.lang.NullPointerException
La méthode qui provoque cette erreur est
cassandraConnector.openSession();
Ceci est mon pom.xml:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>xign_analysis</groupId>
<artifactId>xign_analysis_jar_archive</artifactId>
<version>0.0.1-SNAPSHOT</version>
<properties>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.source>1.8</maven.compiler.source>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<build>
</build>
<dependencies>
<!-- https://mvnrepository.com/artifact/org.apache.spark/spark-core_2.10 -->
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.10</artifactId>
<version>2.1.1</version>
<scope>compile</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.spark/spark-sql_2.10 -->
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-sql_2.10</artifactId>
<version>2.1.1</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-mllib_2.10</artifactId>
<version>2.1.1</version>
<scope>compile</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.cassandra/cassandra-all -->
<dependency>
<groupId>org.apache.cassandra</groupId>
<artifactId>cassandra-all</artifactId>
<version>3.11.0</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>log4j-over-slf4j</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- https://mvnrepository.com/artifact/com.datastax.spark/spark-cassandra-connector_2.10 -->
<dependency>
<groupId>com.datastax.spark</groupId>
<artifactId>spark-cassandra-connector_2.10</artifactId>
<version>2.0.5</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
</dependencies>
</project>
Im en utilisant Macbook avec El Capitan (10.11.06). Mon Spark Master, Spark Worker et le serveur Cassandra fonctionnent correctement. Je n'ai aucune idée de comment résoudre ce problème.
Il semble que je n'ai pas de connexion car Cassandra fonctionne sur localhost: 9042. Ainsi, la méthode 'cassandraConnector.openSession()' renvoie ** null **. Y at-il une autre façon de configurer l'hôte et le port de Cassandra? –