コード例: Apache Spark™

このセクションでは、Snowflakeオープンカタログで以下のタスクを実行するためにApache Spark™を使用するためのコード例を示しています。

  • サービス接続の設定

  • カタログを使用する

  • カタログを一覧表示する

  • 名前空間を一覧表示する

  • 名前空間の作成

  • 名前空間を使用する

  • 名前空間を削除する

  • テーブルを作成する

  • テーブルをクエリする

  • テーブルプロパティを表示する

  • テーブルを一覧表示する

  • テーブルを削除する

必要な権限

コード例に含まれるコマンドを実行するには、Sparkをオープンカタログに接続するために使用するサービスプリンシパルに以下の権限を付与する必要があります。

コマンド

必要な権限

Show Namespaces

NAMESPACE_LIST

Create namespace

NAMESPACE_CREATE

Use namespace

NAMESPACE_READ_PROPERTIES

Show tables

TABLE_LIST

Create or replace table

  • TABLE_WRITE_DATA
  • TABLE_CREATE

Drop namespace

NAMESPACE_DROP

テーブルを削除

TABLE_DROP

Insert into table

TABLE_WRITE_DATA

Select from table

TABLE_READ_DATA

サービス接続の設定

Sparkでのサービス接続の構成例をご参照ください。

カタログの使用

カタログ catalog1 を使用します。

spark.sql("use catalog1").show()
Copy

カタログを一覧表示する

接続しているカタログを一覧表示します。

spark.sql("show catalogs").show()
Copy

名前空間を一覧表示する

接続しているカタログの名前空間を一覧表示します。

spark.sql("show namespaces").show()
Copy

名前空間の作成

名前空間 namespace1 を作成します。

spark.sql("CREATE NAMESPACE namespace1")
Copy

名前空間を使用する

名前空間 namespace1 を使用します。

spark.sql("use namespace1").show()
Copy

名前空間を削除する

名前空間 namespace1 をカタログから削除します。

spark.sql("DROP NAMESPACE namespace1")
Copy

テーブルを作成する

親名前空間 namespace1 の下に customers テーブルを作成します。

spark.sql ("use namespace1");
spark.sql("CREATE OR REPLACE TABLE customers (id int, custnum int) using iceberg")
Copy

テーブルをクエリする

customers テーブルをクエリします。

spark.sql ("use namespace1");
spark.sql("SELECT * FROM customers").show()
Copy

テーブルプロパティを表示する

customers テーブルのテーブルプロパティを表示します。

spark.sql("SHOW TBLPROPERTIES customers").show(50, False)
Copy

テーブルを一覧表示する

接続しているカタログのテーブルを一覧表示します。

spark.sql("show tables").show()
Copy

テーブルを削除する

親名前空間 namespace1 の下にある customers テーブルを削除します。

spark.sql ("use namespace1");
spark.sql("DROP TABLE customers")
Copy