code: function SparkSession() {
        if (arguments.length == 2 && arguments[0] instanceof Promise) {
          // Someone created an instance of this class for us
          this.kernelP = arguments[0];
          this.refIdP = arguments[1];
  
          if (!server.modulesLoaded) {
            var sc = this.sparkContext();
  
            var myThis = this;
            var kernelP = this.kernelP;
  
            this.kernelP = new Promise(function(resolve, reject) {
              kernelP.then(function(kernel) {
                server.loadModules(sc).then(function() {
                  resolve(kernel);
                }).catch(reject);
              }).catch(reject);
            });
          }
        } else {
          Utils.handleConstructor(this, arguments, gKernelP);
        }
      }
docs: @classdesc
  The entry point to programming Spark with the Dataset and DataFrame API.
  
  In environments that this has been created upfront (e.g. REPL, notebooks), use the builder
  to get an existing session:
  
  @example
  SparkSession.builder().getOrCreate()
  
  
  The builder can also be used to create a new session:
  
  @example
  SparkSession.builder()
  .master("local")
  .appName("Word Count")
  .config("spark.some.config.option", "some-value").
  .getOrCreate()
  
  @class
  @memberof module:eclairjs/sql