【SparkSQL】CREATE TABLEでテーブルを作成する

SQL
※本ページにはプロモーションが含まれます
※本ページにはプロモーションが含まれます
スポンサーリンク

CREATE TABLEでのテーブル作成はじめに

CREATE TABLEではテーブル名やカラム名、データ型を指定してテーブル作成ができます。
本記事では、SparkSQLのCREATE TABLE文について解説いたします。

SparkSQLでのCREATE TABLEの使い方

CREATE TABLEの基本構文

SparkSQLでテーブルを作成するSQL文は、次のようになります。

CREATE TABLE IF NOT EXISTS テーブル名 (
カラム名1 データ型1,
カラム名2 データ型2,
...
) [USING データソース]

この中で、テーブル名 は作成するテーブルの名前、カラム名 は各列の名前、データ型 は各列のデータ型を指定します。USING 句を使用して、データソースを指定してテーブルを作成することもできますが、これはオプションです。

例えば、次のようなテーブルを作成するSQL文になります。

CREATE TABLE IF NOT EXISTS employees (
employee_id INT,
first_name STRING,
last_name STRING,
email STRING,
hire_date DATE
)

この例では、employees という名前のテーブルを作成し、employee_idfirst_namelast_nameemailhire_date の5つの列を持つことを定義しています。データ型はそれぞれ INT、STRING、DATE です。

SparkSQL特有の構文

Spark SQLにおけるCREATE TABLE文は、標準のSQLと似ていますが、Sparkの特有の機能や構文を利用することができます。以下は、Spark SQLでテーブルを作成するための基本的な構文です。

CREATE TABLE [IF NOT EXISTS] テーブル名 (
列1 データ型,
列2 データ型,
...
) [USING フォーマット]
[OPTIONS (キー = '値', ...)]
[PARTITIONED BY (パーティション列名 データ型, ...)]
[CLUSTERED BY (クラスタリング列名) INTO num_buckets BUCKETS]
[TBLPROPERTIES (キー = '値', ...)]

ここで、

  • CREATE TABLE:新しいテーブルを作成するためのキーワードです。
  • IF NOT EXISTS:指定された名前のテーブルが既に存在する場合でも、エラーを発生させずに処理を続行します(オプション)。
  • テーブル名:新しいテーブルの名前を指定します。
  • (列1 データ型, 列2 データ型, ...):テーブル内の列の定義を含む部分です。各列は、列名とデータ型で構成されます。
  • USING フォーマット:テーブルを作成する際に使用するファイルフォーマットを指定します(例:Parquet、ORC、CSVなど)。
  • OPTIONS (キー = '値', ...):フォーマット固有のオプションを指定します。
  • PARTITIONED BY (パーティション列名 データ型, ...):パーティショニングされたテーブルを作成します。
  • CLUSTERED BY (クラスタリング列名) INTO num_buckets BUCKETS:クラスタリングされたテーブルを作成します。
  • TBLPROPERTIES (キー = '値', ...):テーブルのプロパティを指定します。

Spark SQLでのパーティショニングされたテーブル作成

以下はパーティショニングされたテーブルを作成する例です。

CREATE TABLE IF NOT EXISTS sales_data (
transaction_id INT,
transaction_date DATE,
product_id INT,
amount DOUBLE
)
PARTITIONED BY (year INT, month INT)
USING PARQUET

この例では、”sales_data” テーブルが作成されます。

テーブルは4つの列を持ちますが、”year” と “month” 列でパーティション化されています。これにより、テーブルのデータは年ごとおよび月ごとに分割され、管理されます。

新しいテーブルを作成する際に、PARTITIONED BY句を使用してパーティション列を指定します。パーティション列はテーブルの主要な列として物理的にデータを分割します。これにより、クエリのパフォーマンスが向上し、データの管理が容易になります。

データをこのテーブルに挿入する際に、適切なパーティション列の値を指定する必要があります。たとえば、特定の年と月のデータを追加する場合は、INSERT文で適切な値を指定することが重要です。

プログラムの環境構築からわからない、、」「データサイエンティストになるには?」など自己学習に不安がありましたら、以下のスクールのご活用をご検討ください!

スタアカTech AcademyCode Lesson
データサイエンティストを目指すことに特化したスクールです。現役エンジニアから学べるオンラインに特化したプログラミングスクールです。転職の支援はもちろん、副業に活かせるスキルの習得から、副業の仕事紹介まで寄り添います。「未経験から独学でプロを目指す」というコンセプトのもと、実践的なコーディング学習ができるプログラミング学習サービスです。
★コース例
・データサイエンティスト概要コース
・Python基礎コース
・データ加工集計可視化コース
・統計学概要コース
・SQL基礎コース
 など
コース例
・Pythonコース

・AIコース
・データサイエンスコース
★提供スキル
HTML, CSS, JavaScript(DOM), React, Vue, TypeScript, Java, PHP, Python, SQL

SQL参考文献

SQL学び始めの時はこちらの本を参考にしていました。

DBやテーブルの構造から、よく使う関数などがまとめられています。基礎を身につけたい方におススメかと思います。

SQL文法関連記事

そのほか、SQL関連記事をこちらにまとめておりますのでご参考ください。
Coffee Tech Blog SQL関連記事

もしIT業界への転職でお困りでしたら、下記サービスのご活用をご検討ください!
私は転職の際にGeeklyを活用させて頂き、ご縁を頂くことができました。

Geekly転職ドラフト
IT・WEB・ソーシャルゲーム業界を専門とした転職支援サービスです。ギークリー独占の求人案件も扱っており、大手サービスに劣らないサービス力を誇ります。転職ドラフトは年収UP率94.3% / 平均年収UP額148.4万円と圧倒的な年収UP率を誇るイベント型のエンジニア向け転職サービスです。毎月1回開催され、IT/Web系企業を中心に、厳選された約240社からダイレクトスカウトを受け取ることができます。

CREATE TABLEでのテーブル作成まとめ

以上がSparkSQLでのCREATE TABLEでのテーブル作成になります。
テーブルのデータ量が多くなる場合はパーティションを追加し、データを分割するとよいです!

ケースに合わせてご活用ください!

参考になれば幸いです☕

コメント

タイトルとURLをコピーしました