0
0

2024/4/12に翔泳社よりApache Spark徹底入門を出版します!

書籍のサンプルノートブックをウォークスルーしていきます。Python/Chapter04/4-3 Spark Tablesとなります。

翻訳ノートブックのリポジトリはこちら。

ノートブックはこちら

このノートブックでは、データベース、テーブル、カラムをクエリーするためのSpark Catalog Interface APIの使い方を説明します。

文書化されているメソッドの完全なリストはこちらです。

us_flights_file = "/databricks-datasets/learning-spark-v2/flights/departuredelays.csv"

マネージドテーブルの作成

# カタログ、データベース、マネージドテーブルの作成
spark.sql("USE CATALOG takaakiyayoi_catalog") 
spark.sql("DROP DATABASE IF EXISTS learn_spark_db CASCADE") 
spark.sql("CREATE DATABASE learn_spark_db")
spark.sql("USE learn_spark_db")
spark.sql("CREATE TABLE us_delay_flights_tbl(date STRING, delay INT, distance INT, origin STRING, destination STRING)")

データベースの表示

display(spark.catalog.listDatabases())

Screenshot 2024-03-27 at 15.52.06.png

US Flightsテーブルの読み込み

df = (spark.read.format("csv")
      .schema("date STRING, delay INT, distance INT, origin STRING, destination STRING")
      .option("header", "true")
      .option("path", "/databricks-datasets/learning-spark-v2/flights/departuredelays.csv")
      .load())

テーブルに保存

df.write.mode("overwrite").saveAsTable("us_delay_flights_tbl")

テーブルのキャッシュ

%sql
CACHE TABLE us_delay_flights_tbl

テーブルがキャッシュされているかどうかを確認します。

spark.catalog.isCached("us_delay_flights_tbl")
True

データベースのテーブルの表示

テーブルはSparkによって管理されているMANAGEDであることに注意してください。

spark.catalog.listTables(dbName="learn_spark_db")
[Table(name='us_delay_flights_tbl', catalog='takaakiyayoi_catalog', namespace=['learn_spark_db'], description=None, tableType='MANAGED', isTemporary=False)]

テーブルのカラムの表示

spark.catalog.listColumns("us_delay_flights_tbl")
[Column(name='date', description=None, dataType='string', nullable=True, isPartition=False, isBucket=False, isCluster=False),
 Column(name='delay', description=None, dataType='int', nullable=True, isPartition=False, isBucket=False, isCluster=False),
 Column(name='distance', description=None, dataType='int', nullable=True, isPartition=False, isBucket=False, isCluster=False),
 Column(name='origin', description=None, dataType='string', nullable=True, isPartition=False, isBucket=False, isCluster=False),
 Column(name='destination', description=None, dataType='string', nullable=True, isPartition=False, isBucket=False, isCluster=False)]

アンマネージドテーブルの作成

割愛します。

はじめてのDatabricks

はじめてのDatabricks

Databricks無料トライアル

Databricks無料トライアル

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0