J'essaie de créer un programme simple en utilisant Spark en Java et j'obtiens cette erreur:
Erreur: (10, 57) Java: types incompatibles: org.apache.spark.SparkConf ne peut pas être converti en org.apache.spark.SparkContext
Mon code:
package com.example.lab;
import org.apache.spark.SparkConf;
import org.apache.spark.api.java.JavaSparkContext;
public class Lab {
public static void main(String[] args) {
SparkConf config = new SparkConf();
config.setMaster("local[*]").setAppName("Lab");
JavaSparkContext jsc = new JavaSparkContext(config);
}
}
J'ai un PC Windows 8.1, exécutant Java 1.8 et Spark v 2.3.0.
Pourquoi ai-je cette erreur?
Réponses:
1 pour la réponse № 1N’utilisez pas SparkContext. Depuis Spark 2.0, vous devez utiliser SparkSession, qui implique à la fois SparkContext et SQLContext. Vous devez donc spécifier votre configuration de cette manière avec SparkSession:
SparkSession spark = SparkSession.builder()
.config(config)
.getOrCreate();
Ou encore plus simplement, vous oubliez complètement l'objet SparkConfig en spécifiant les propriétés directement avec l'objet SparkSession.Builder:
SparkSession spark = SparkSession.builder()
.master("local[*]")
.appName("Lab")
.getOrCreate();
Et bien sûr, si vous voulez vraiment un objet SparkContext, vous pouvez le faire:
sparkSession.sparkContext();
Vérifiez javadocs pour la classe SparkSession.
J'espère que ça aide! :)