すべてのプロダクト
Search
ドキュメントセンター

E-MapReduce:SparkSQL 開発

最終更新日:Mar 27, 2026

EMR Serverless Spark に組み込まれている SQL エディターを使用して、Spark SQL ジョブをインタラクティブに記述および実行します。ジョブの実行後、Spark UI にアクセスして、実行ステータス、リソース使用量、およびログを確認できます。

前提条件

開始する前に、以下が準備できていることを確認してください:

Spark SQL ジョブの作成

  1. 開発ページに移動します。

    1. EMR コンソールにログインします。

    2. 左側のナビゲーションウィンドウで、[EMR Serverless] > [Spark] を選択します。

    3. [Spark] ページで、対象のワークスペースの名前をクリックします。

    4. [EMR Serverless Spark] ページで、左側のナビゲーションウィンドウにある [開発] をクリックします。

  2. ジョブを作成します。

    1. [開発] タブで、image アイコンをクリックします。

    2. ダイアログボックスで [名前] を入力し、タイプを [SparkSQL] に設定して、[OK] をクリックします。

    3. 右上隅で、データカタログ、データベース、および実行中の SQL セッションインスタンスを選択します。新しい SQL セッションインスタンスを作成するには、ドロップダウンリストから [SQL セッションに接続] を選択します。詳細については、「SQL セッションの管理」をご参照ください。image

    4. エディターに SQL ステートメントを入力します。

      例 1:基本的な SQL 操作

      データベースを作成し、そのデータベースに切り替え、テーブルを作成し、行を挿入して、データをクエリします。

      create DATABASE test_sql;
      
      use test_sql;
      
      CREATE TABLE IF NOT EXISTS my_table (id INT, name STRING);
      
      INSERT INTO my_table VALUES(1, 'Alice'),(2, 'Bob');
      
      SELECT * FROM my_table WHERE id > 1;

      結果は次の図に示されています。

      image

      例 2:CSV ベースの外部テーブル

      Object Storage Service (OSS) の CSV ファイルをバックエンドとする外部テーブルを作成し、分析クエリを実行します。oss://<bucketname>/user/ を実際のバケットパスに置き換えてください。

      1. 外部テーブルを作成します。orders という名前のテーブルを、以下のフィールドで定義します:

        • order_id:注文 ID。

        • order_date:注文タイムスタンプ。例:'2025-07-01 10:00:00'

        • order_category:製品カテゴリ。例:'Electronics' または 'Apparel'

        • order_revenue:注文金額。

        CREATE TABLE orders (
          order_id       STRING,   -- 注文 ID
          order_date     STRING,   -- 注文タイムスタンプ
          order_category STRING,   -- 製品カテゴリ
          order_revenue  DOUBLE    -- 注文金額
        )
        USING CSV
        OPTIONS (
          path   'oss://<bucketname>/user/',
          header 'true'
        );
      2. テストデータを挿入します。

        INSERT OVERWRITE TABLE orders VALUES
          ('o1',  '2025-07-01 10:00:00', 'Electronics', 5999.0),
          ('o2',  '2025-07-02 11:30:00', 'Apparel',     299.0),
          ('o3',  '2025-07-03 14:45:00', 'Electronics', 899.0),
          ('o4',  '2025-07-04 09:15:00', 'Home Goods',  99.0),
          ('o5',  '2025-07-05 16:20:00', 'Electronics', 1999.0),
          ('o6',  '2025-07-06 08:00:00', 'Apparel',     199.0),
          ('o7',  '2025-07-07 12:10:00', 'Electronics', 799.0),
          ('o8',  '2025-07-08 18:30:00', 'Home Goods',  59.0),
          ('o9',  '2025-07-09 20:00:00', 'Electronics', 399.0),
          ('o10', '2025-07-10 07:45:00', 'Apparel',     599.0),
          ('o11', '2025-07-11 09:00:00', 'Electronics', 1299.0),
          ('o12', '2025-07-12 13:20:00', 'Home Goods',  159.0),
          ('o13', '2025-07-13 17:15:00', 'Apparel',     499.0),
          ('o14', '2025-07-14 21:30:00', 'Electronics', 999.0),
          ('o15', '2025-07-15 06:10:00', 'Home Goods',  299.0);
      3. 分析クエリを実行します。次のクエリは、15 日間のカテゴリ別売上パフォーマンス (注文数、流通取引総額 (GMV)、平均注文金額、最新の注文時間) を返します。対象は総収益が 1,000 を超えるカテゴリで、結果は GMV の降順で並べ替えられます。

        SELECT
            order_category,
            COUNT(order_id)    AS order_count,
            SUM(order_revenue) AS gmv,
            AVG(order_revenue) AS avg_order_amount,
            MAX(order_date)    AS latest_order_date
        FROM orders
        WHERE
            CAST(order_date AS TIMESTAMP) BETWEEN '2025-07-01' AND '2025-07-15'
        GROUP BY order_category
        HAVING SUM(order_revenue) > 1000
        ORDER BY gmv DESC, order_category ASC;
    5. (オプション) 右側の [バージョン情報] タブをクリックして、バージョンを比較します。エディターは、バージョン間の SQL コードの差異をハイライト表示します。

  3. ジョブを実行して公開します。

    1. [実行] をクリックします。結果は [実行結果] タブに表示されます。エラーが発生した場合は、[実行に関する問題] タブを確認してください。右側の実行履歴パネルには、過去 3 日間のレコードが表示されます。

    2. ジョブが正しく実行されることを確認した後、右上隅の [公開] をクリックします。

    3. [公開] ダイアログボックスで、リリースノートを入力し、[OK] をクリックします。

Spark UI へのアクセス

Spark UI には、タスクの実行ステータス、リソース使用量、およびログ情報が表示されます。これらは Spark ジョブの分析と最適化に役立ちます。

実行結果からのアクセス

このメソッドには、esr-4.2.0 (esr-4.x)、esr-3.2.0 (esr-3.x)、または esr-2.6.0 (esr-2.x) 以降のエンジンバージョンが必要です。

SQL ステートメントの実行後、[実行結果] タブの下部にある [Spark UI] をクリックします。

image

セッションインスタンスからのアクセス

SQL ステートメントの実行後、セッションインスタンスを見つけて、image > [Spark UI] を選択します。

image

キーボードショートカット

機能 Windows Mac 説明
現在のスクリプトを実行 Ctrl + Enter Control + Enter すべての SQL ステートメント、またはハイライト表示された選択範囲のみを実行します。[実行] をクリックする操作と同じです。
SQL のフォーマット Ctrl + P Control + P SQL の構造をフォーマットします:インデント、改行、キーワードの大文字/小文字を標準化します。
テキストの検索 Ctrl + F Control + F 現在のスクリプトでキーワードを検索します。
タスクの保存 Ctrl + S Control + S データ損失を防ぐために、現在の未公開のジョブを保存します。

次のステップ

ワークフローを作成して、ジョブが定期的に実行されるようにスケジューリングします。詳細については、「ワークフローの作成」をご参照ください。完全なスケジューリングの例については、「Spark SQL 開発のクイックスタート」をご参照ください。