All Products
Search
Document Center

E-MapReduce:Pengembangan SparkSQL

Last Updated:Mar 27, 2026

Gunakan editor SQL bawaan di EMR Serverless Spark untuk menulis dan menjalankan pekerjaan Spark SQL secara interaktif. Setelah pekerjaan dijalankan, akses Spark UI untuk memeriksa status eksekusi, penggunaan resource, dan log.

Prasyarat

Sebelum memulai, pastikan Anda telah memiliki:

Buat pekerjaan Spark SQL

  1. Buka halaman pengembangan.

    1. Masuk ke Konsol EMR.

    2. Di panel navigasi sebelah kiri, pilih EMR Serverless > Spark.

    3. Di halaman Spark, klik nama ruang kerja yang dituju.

    4. Di halaman EMR Serverless Spark, klik Development di panel navigasi sebelah kiri.

  2. Buat pekerjaan.

    1. Di tab Development, klik ikon image.

    2. Di kotak dialog, masukkan Name, atur Type menjadi SparkSQL, lalu klik OK.

    3. Di pojok kanan atas, pilih katalog data, database, dan instans session SQL yang sedang berjalan. Untuk membuat instans session SQL baru, pilih Connect to SQL Session dari daftar drop-down. Lihat Kelola session SQL untuk detail selengkapnya. image

    4. Masukkan pernyataan SQL di editor.

      Contoh 1: Operasi SQL dasar

      Buat database, alihkan ke database tersebut, buat tabel, masukkan baris data, lalu kueri datanya.

      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;

      Hasilnya ditampilkan pada gambar berikut.

      image

      Contoh 2: Tabel eksternal berbasis CSV

      Buat tabel eksternal yang didukung oleh file CSV di Object Storage Service (OSS) dan jalankan kueri analitik. Ganti oss://<bucketname>/user/ dengan path bucket Anda yang sebenarnya.

      1. Buat tabel eksternal. Definisikan tabel bernama orders dengan bidang-bidang berikut:

        • order_id: ID pesanan.

        • order_date: Timestamp pesanan, misalnya '2025-07-01 10:00:00'.

        • order_category: Kategori produk, misalnya 'Electronics' atau 'Apparel'.

        • order_revenue: Jumlah pesanan.

        CREATE TABLE orders (
          order_id       STRING,   -- Order ID
          order_date     STRING,   -- Order timestamp
          order_category STRING,   -- Product category
          order_revenue  DOUBLE    -- Order amount
        )
        USING CSV
        OPTIONS (
          path   'oss://<bucketname>/user/',
          header 'true'
        );
      2. Masukkan data uji.

        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. Jalankan kueri analitik. Kueri berikut mengembalikan kinerja penjualan berdasarkan kategori selama periode 15 hari — jumlah pesanan, total GMV (Gross Merchandise Value), jumlah pesanan rata-rata, dan waktu pesanan terbaru — untuk kategori dengan pendapatan total di atas 1.000, diurutkan berdasarkan GMV secara menurun.

        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. (Opsional) Klik tab Version Information di sebelah kanan untuk membandingkan versi. Editor akan menyorot perbedaan kode SQL antarversi.

  3. Jalankan dan publikasikan pekerjaan.

    1. Klik Run. Hasilnya muncul di tab Execution Results. Jika terjadi error, periksa tab Execution Issues. Panel riwayat eksekusi di sebelah kanan menampilkan catatan dari tiga hari terakhir.

    2. Setelah memastikan pekerjaan berjalan dengan benar, klik Publish di pojok kanan atas.

    3. Di kotak dialog Publish, masukkan catatan rilis lalu klik OK.

Akses Spark UI

Spark UI menampilkan status eksekusi task, penggunaan resource, dan informasi log — berguna untuk menganalisis dan mengoptimalkan pekerjaan Spark Anda.

Akses dari hasil eksekusi

Metode ini memerlukan versi engine berikut atau yang lebih baru: esr-4.2.0 (esr-4.x), esr-3.2.0 (esr-3.x), atau esr-2.6.0 (esr-2.x).

Setelah pernyataan SQL dijalankan, klik Spark UI di bagian bawah tab Execution Results.

image

Akses dari instans session

Setelah pernyataan SQL dijalankan, temukan instans session lalu pilih image > Spark UI.

image

Pintasan keyboard

Fungsi Windows Mac Deskripsi
Run current script Ctrl + Enter Control + Enter Menjalankan semua pernyataan SQL, atau hanya bagian yang dipilih. Sama seperti mengklik Run.
Format SQL Ctrl + P Control + P Memformat struktur SQL: menstandarkan indentasi, jeda baris, dan kapitalisasi kata kunci.
Find text Ctrl + F Control + F Mencari kata kunci dalam skrip saat ini.
Save task Ctrl + S Control + S Menyimpan pekerjaan yang belum dipublikasikan saat ini untuk mencegah kehilangan data.

Langkah berikutnya

Jadwalkan pekerjaan agar berjalan secara berkala dengan membuat alur kerja. Lihat Buat alur kerja. Untuk contoh penjadwalan lengkap, lihat Panduan cepat pengembangan Spark SQL.