J'ai créé une session dans la fonction main()
, comme ceci:
val sparkSession = SparkSession.builder.master("local[*]").appName("Simple Application").getOrCreate()
Maintenant, si je veux configurer l'application ou accéder aux propriétés, je peux utiliser la variable locale sparkSession
dans la même fonction.
Et si je veux accéder à cette sparkSession
ailleurs dans le même projet, comme project/module/.../.../xxx.scala
. Que devrais-je faire?
Une fois qu'une session a été créée (n'importe où), vous pouvez utiliser en toute sécurité:
SparkSession.builder().getOrCreate()
Pour obtenir la (même) session n'importe où dans le code, tant que la session est toujours en cours . Spark maintient une seule session active. Par conséquent, à moins que celle-ci ne soit arrêtée ou bloquée, vous obtenez la même.
Lorsque la variable SparkSession
a été définie comme
val sparkSession = SparkSession.builder.master("local[*]").appName("Simple Application").getOrCreate()
Cette variable va passer de point/refer
à une seule SparkSession
en tant que val
. Et vous pouvez toujours passer à différentes classes pour qu'ils puissent y accéder ainsi que
val newClassCall = new NewClass(sparkSession)
Vous pouvez maintenant utiliser la même sparkSession
dans cette nouvelle classe.