Sparkセッションの使用

Sparkセッション・オブジェクトは、Sparkアプリケーションのプライマリ・エントリー・ポイントで、データベース・テーブルでSQLクエリーを実行することができます。

Sparkセッションは、org.apache.spark.sql.SparkSessionのインスタンス内でカプセル化されます。セッション・オブジェクトには、Sparkマスター、Sparkアプリケーション、構成オプションに関する情報があります。

DSE Sparkシェルは、sparkという名前のSparkセッション・セッション・オブジェクトを自動的に構成して作成します。このオブジェクトを使用して、DataStax Enterpriseでデータベース・テーブルのクエリーを開始します。

scala> spark.sql("SELECT * FROM keyspace.table_name")
注:

Spark 1.6以前では、個別のHiveContextSQLContextオブジェクトがありました。Spark 2.0以降、SparkSessionは両方のオブジェクトをカプセル化します。

Sparkアプリケーションでは、他のベースとなるデータ・カタログを使用するために複数のセッションを使用できます。既存のSparkセッションを使用すると、newSessionメソッドを呼び出して、新しいセッションを作成できます。
val newSpark = spark.newSession()

Builder APIを使用したSparkセッションの構築

Builder APIを使用すると、Sparkセッションを手動で作成することができます。
import org.apache.spark.sql.SparkSession
val sparkSession = SparkSession.builder
  .master("dse://localhost?")
  .appName("my-spark-app")
  .enableHiveSupport()
  .config("spark.executor.logs.rolling.maxRetainedFiles", "3")
  .config("spark.executor.logs.rolling.strategy", "size")
  .config("spark.executor.logs.rolling.maxSize", "50000")
  .getOrCreate

Sparkセッションの停止

stopメソッドを使用して、Sparkセッションを終了します。

spark.stop

構成オプションの取得および設定

spark.conf.getおよびspark.conf.setメソッドを使用して、セッションのSpark構成オプションを取得または設定します。

spark.conf.set("spark.executor.logs.rolling.maxRetainedFiles", "3")
spark.conf.get("spark.executor.logs.rolling.maxSize")