ノートブックの分離
ノートブックの分離とは、ノートブック間の変数とクラスの可視性を指します。 Databricks では、次の 2 種類の分離がサポートされています。
変数とクラスの分離
セッション分離Spark
注
Databricks は 、クラスターで構成されたアクセス モードを使用してユーザーの分離を管理します。
分離の共有なし: 複数のユーザーが同じクラスターを使用できます。 ユーザーは、クラスター レベルで設定された資格情報を共有します。 データ アクセス制御は適用されません。
シングルユーザー: 名前付きユーザーのみがクラスターを使用できます。 すべてのコマンドは、そのユーザーの権限で実行されます。 Hive metastore 内のテーブル ACL は適用されません。このアクセス モードは Unity Catalogをサポートします。
共有: 複数のユーザーが同じクラスターを使用できます。 ユーザーは互いに完全に分離されており、各ユーザーは独自の特権でコマンドを実行します。 Hive metastore 内のテーブル ACL が適用されます。このアクセス モードは Unity Catalogをサポートします。
変数とクラスの分離
変数とクラスは、現在のノートブックでのみ使用できます。 たとえば、同じクラスターにアタッチされた 2 つのノートブックで、同じ名前の変数とクラスを定義できますが、これらのオブジェクトは異なります。
同じクラスターにアタッチされているすべてのノートブックに表示されるクラスを定義するには、 パッケージ セルでクラスを定義します。その後、アタッチされた Scala または Java ライブラリ内のクラスにアクセスするのと同じ完全修飾名を使用してクラスにアクセスできます。
セッション分離 Spark
クラスターにアタッチされているすべてのノートブックには、 SparkSession
を表す spark
という名前の事前定義された変数があります。SparkSession
は、Spark APIs を使用したり、ランタイム構成を設定したりするためのエントリ ポイントです。
Spark セッションの分離は、デフォルトによって有効になります。 また、グローバル一時ビューを使用して、ノートブック間で一時ビューを共有することもできます。CREATE VIEWを参照してください。Spark セッションの分離を無効にするには、Spark 構成で spark.databricks.session.share
を true
に設定します。
重要
true spark.databricks.session.share
に設定すると、ストリーミングノートブックセルとストリーミングジョブの両方で使用されるモニタリングが中断されます。 具体的には:
ストリーミングセルのグラフは表示されません。
ジョブは、ストリームが実行されている限りブロックされません (ジョブは "正常に" 終了し、ストリームを停止します)。
ジョブ内のストリームは、終了についてモニターされません。 代わりに、手動で
awaitTermination()
を呼び出す必要があります。ストリーミングDataFrames で 新しい視覚エフェクトを作成する という呼び出しは機能しません。
他の言語でコマンドをトリガーするセル (つまり、 %scala
、 %python
、 %r
、および %sql
を使用するセル) と、他のノートブックを含むセル (つまり、 %run
を使用するセル) は、現在のノートブックの一部です。 したがって、これらのセルは他のノートブックセルと同じセッションにあります。 対照的に、ノートブック ワークフロー では、分離された SparkSession
を使用してノートブックが実行されるため、このようなノートブックで定義された一時的なビューは他のノートブックに は表示されません 。