web-dev-qa-db-fra.com

Obtenez JavaSparkContext à partir d'une session SparkSession

Im utilise un SparkSession pour exécuter mon spark application parce que j'utilise beaucoup de fonctionnalités spark-sql. Je voudrais utiliser le JavaSparkContextpour créer un RDD à partir d'une liste. Mais via la session, je ne peux obtenir qu'un ordinaireSparkContext. Existe-t-il un moyen de transformer le contexte dans ce sens?

14
moe

Après avoir déterminé le SparkContext, vous pouvez utiliser:

SparkContext sc = ...
JavaSparkContext jsc = JavaSparkContext.fromSparkContext(sc);

Cela vous renverra la nouvelle instance de JavaSparkContext, mais il n'y a pas de problème tant que vous conservez une seule instance active de SparkContext.

28
Serhiy

Oui, vous pouvez le faire avec la session spark comme ceci:

   val spark = SparkSession.builder()
         .config(sparkConf)
         .getOrCreate()

    val jsc = new JavaSparkContext(spark.sparkContext)

ou en Java, ce serait:

SparkSession spark = SparkSession.builder().config(sparkConf).getOrCreate();
JavaSparkContext jsc = new JavaSparkContext(spark.sparkContext());
11
Derek_M