Tutorial: Muat data dan jalankan kueri pada kluster Apache Spark di Azure HDInsight

Dalam tutorial ini, Anda belajar cara membuat dataframe dari file csv, dan cara menjalankan kueri Spark SQL interaktif terhadap kluster Apache Spark di Azure HDInsight. Di Spark, dataframe adalah kumpulan data terdistribusi yang disusun ke dalam kolom bernama. Dataframe secara konseptual setara dengan tabel dalam database relasional atau bingkai data di R/Python.

Dalam tutorial ini, Anda akan mempelajari cara:

  • Membuat dataframe dari file csv
  • Menjalankan kueri pada dataframe

Prasyarat

Klaster Apache Spark pada HDInsight. Lihat Buat kluster Apache Spark.

Membuat file Jupyter Notebook

Jupyter Notebook merupakan lingkungan buku catatan interaktif yang mendukung berbagai bahasa pemrogram. Buku catatan tersebut memungkinkan Anda untuk berinteraksi dengan data, menggabungkan kode dengan teks markdown, dan melakukan visualisasi sederhana.

  1. Edit URL https://SPARKCLUSTER.azurehdinsight.net/jupyter dengan mengganti SPARKCLUSTER dengan nama kluster Spark Anda. Kemudian masukkan URL yang diedit di browser web. Jika diminta, masukkan kredensial masuk kluster untuk kluster.

  2. Dari halaman web Jupyter, Untuk kluster Spark 2.4, Pilih Baru>PySpark untuk membuat notebook. Untuk rilis Spark 3.1, pilih Baru>PySpark3 untuk membuat notebook karena kernel PySpark tidak lagi tersedia di Spark 3.1.

    Create a Jupyter Notebook to run interactive Spark SQL query.

    Buku catatan baru dibuat dan dibuka dengan nama Untitled(Untitled.ipynb).

    Catatan

    Dengan menggunakan kernel PySpark atau PySpark3 untuk membuat notebook, sesi spark dibuat secara otomatis untuk Anda saat Anda menjalankan sel kode pertama. Anda tidak perlu secara eksplisit membuat sesi.

Membuat dataframe dari file csv

Aplikasi dapat membuat dataframe langsung dari file atau folder di penyimpanan jarak jauh seperti Azure Storage atau Azure Data Lake Storage; dari tabel Apache Hive; atau dari sumber data lain yang didukung oleh Spark, seperti Azure Cosmos DB, Azure SQL DB, DW, dan sebagainya. Cuplikan layar berikut menunjukkan rekam jepret dari file HVAC.csv yang digunakan dalam tutorial ini. File csv dilengkapi dengan semua kluster HDInsight Spark. Data menangkap variasi suhu beberapa bangunan.

Snapshot of data for interactive Spark SQL query.

  1. Tempelkan kode berikut dalam sel kosong Jupyter Netbook, lalu tekan SHIFT + ENTER untuk menjalankan kode. Kode ini mengimpor tipe yang diperlukan untuk skenario ini:

    from pyspark.sql import *
    from pyspark.sql.types import *
    

    Saat menjalankan kueri interaktif di Jupyter, jendela browser web atau keterangan tab menampilkan status (Sibuk) bersama dengan judul buku catatan. Anda juga melihat lingkaran padat di sebelah teks PySpark di pojok kanan atas. Setelah pekerjaan selesai, lingkaran berubah menjadi lingkaran berongga.

    Status of interactive Spark SQL query.

  2. Perhatikan id sesi yang dikembalikan. Dari gambar di atas, sesi id adalah 0. Jika diinginkan, Anda dapat mengambil detail sesi dengan menavigasi ke https://CLUSTERNAME.azurehdinsight.net/livy/sessions/ID/statements tempat di mana CLUSTERNAME adalah nama kluster Spark dan ID Anda adalah nomor id sesi Anda.

  3. Jalankan kode berikut untuk membuat dataframe dan tabel sementara(hvac) dengan menjalankan kode berikut.

    # Create a dataframe and table from sample data
    csvFile = spark.read.csv('/HdiSamples/HdiSamples/SensorSampleData/hvac/HVAC.csv', header=True, inferSchema=True)
    csvFile.write.saveAsTable("hvac")
    

Menjalankan kueri pada dataframe

Setelah tabel dibuat, Anda bisa menjalankan kueri interaktif pada data.

  1. Jalankan kode berikut ini di sel kosong buku catatan:

    %%sql
    SELECT buildingID, (targettemp - actualtemp) AS temp_diff, date FROM hvac WHERE date = \"6/1/13\"
    

    Output tabular berikut ditampilkan.

    Table output of interactive Spark query result.

  2. Anda juga dapat melihat hasilnya di visualisasi lain. Untuk melihat grafik area untuk output yang sama, pilih Area lalu atur nilai lain seperti yang diperlihatkan.

    Area graph of interactive Spark query result.

  3. Dari bilah menu buku catatan, navigasi ke File>Simpan dan Pos Pemeriksaan.

  4. Jika Anda memulai tutorial berikutnya sekarang, biarkan buku catatan terbuka. Jika tidak, matikan buku catatan untuk merilis sumber daya kluster: dari bilah menu buku catatan, navigasi ke File>Tutup dan Hentikan.

Membersihkan sumber daya

Dengan HDInsight, data dan Buku Jupyter Notebook Anda disimpan di Azure Storage atau Azure Data Lake Storage, sehingga Anda dapat menghapus kluster dengan aman saat tidak digunakan. Anda juga dikenakan biaya untuk kluster HDInsight, bahkan saat tidak digunakan. Karena biaya untuk kluster berkali-kali lebih banyak daripada biaya untuk penyimpanan, masuk akal secara ekonomis untuk menghapus kluster saat tidak digunakan. Jika Anda berencana untuk segera bekerja pada tutorial berikutnya, Anda mungkin ingin menyimpan kluster.

Buka kluster di portal Microsoft Azure, dan pilih Hapus.

Delete HDInsight cluster.

Anda juga dapat memilih nama grup sumber daya untuk membuka halaman grup sumber daya, lalu memilih Hapus grup sumber daya. Dengan menghapus grup sumber daya, Anda menghapus kluster HDInsight dan akun penyimpanan default.

Langkah berikutnya

Dalam tutorial ini, Anda belajar cara membuat dataframe dari file csv, dan cara menjalankan kueri Spark SQL interaktif terhadap kluster Apache Spark di Azure HDInsight. Lanjutkan ke artikel berikutnya untuk melihat bagaimana data yang Anda daftarkan di Apache Spark dapat ditarik ke dalam alat analitik BI seperti Power BI.