Memvisualisasikan DataFrame Spark di notebook

Anda dapat menjelajahi DataFrame PySpark secara interaktif di notebook Jupyter, termasuk Google Cloud Data Agent Kit (DAK), menggunakan paket Python google-colabsqlviz dengan Managed Service untuk Apache Spark. Dibangun di anywidget dan didukung oleh mesin diagram Data Studio, google-colabsqlviz merender visualisasi interaktif di dalam output sel notebook Anda tanpa kode plotting.

Saat meneruskan DataFrame ke google-colabsqlviz, Anda dapat beralih antara tampilan diagram dan tabel data, mengonfigurasi dimensi dan metrik, menerapkan agregasi, mengurutkan atau memfilter data secara interaktif, dan mengekspor data diagram yang difilter atau digabungkan ke DataFrame baru:

  • Dukungan DataFrame multi-mesin: Visualisasikan objek pyspark.sql.DataFrame (termasuk DataFrame Spark Connect), bigframes.pandas.DataFrame, dan pandas.DataFrame menggunakan satu API.
  • Eksekusi dalam kernel dan terdistribusi: Meskipun widget memuat UI diagram Data Studio dari CDN Google, data pokok Anda tidak dikirim ke Data Studio. Semua agregasi dan filter dijalankan di kernel Python atau sesi Managed Service untuk Apache Spark, dan diagram dirender secara lokal di klien notebook Anda.
  • Tidak ada konflik lingkungan: Mesin terdistribusi opsional seperti pyspark dan bigframes terdeteksi saat runtime dan tidak diupgrade atau ditimpa saat Anda menginstal google-colabsqlviz.

Sebelum memulai

Rendering DataFrame PySpark melalui Spark Connect dengan google-colabsqlviz didukung dalam sesi interaktif Managed Service untuk Apache Spark dengan versi runtime serverless 3.0 atau yang lebih baru.

Ikuti petunjuk berikut untuk membuat notebook di Visual Studio Code (VS Code) dengan Data Agent Kit, atau gunakan lingkungan notebook Jupyter lain yang didukung seperti JupyterLab:

  1. Siapkan dan konfigurasi Data Agent Kit (DAK):
    1. Instal ekstensi Data Agent Kit.
    2. Konfigurasi Data Agent Kit.
    3. Pastikan Anda memiliki peran Identity and Access Management (IAM) yang diperlukan.
  2. Buat notebook:
    1. Di panel aktivitas VS Code, klik Data Agent Kit, perluas Apache Spark, lalu pilih + New Spark Notebook.
    2. Untuk Select kernel type, klik Local Kernel.
    3. Untuk Memilih template Runtime Serverless, klik nama template runtime yang tercantum.
    4. Di toolbar notebook, klik Select Kernel, klik Python Environments..., lalu pilih lingkungan Python lokal Anda.
  3. Untuk menginstal paket Python Spark Connect dan google-colabsqlviz yang diperlukan di lingkungan lokal Anda, jalankan perintah berikut di sel notebook atau terminal lokal:

    Sel notebook

    %pip install -U 'google-cloud-spark-connect[interactive,client]'
    

    Terminal lokal

    pip install -U 'google-cloud-spark-connect[interactive,client]'
    

Memuat dan memvisualisasikan set data

Setelah Anda memulai ManagedSparkSession dan memuat set data ke dalam pyspark.sql.DataFrame, teruskan DataFrame ke fungsi explore_dataframe untuk merender visualisasi interaktif. Contoh berikut terhubung ke sesi serverless dan memuat set data Palmer Penguins (`lakehouse-public-data`.ml_datasets.penguins) dari set data publik Lakehouse:

# Importing managed_spark_connect automatically imports explore_dataframe
from google.cloud.managed_spark_connect import ManagedSparkSession

spark = (
    ManagedSparkSession.builder.projectId("PROJECT_ID")
    .location("REGION")
    .getOrCreate()
)

df = spark.read.table("`lakehouse-public-data`.ml_datasets.penguins")

explore_dataframe(df)

Ganti kode berikut:

  • PROJECT_ID: Project ID Google Cloud Anda.
  • REGION: region Managed Service untuk Apache Spark untuk sesi Anda (misalnya, us-central1).

Saat Anda menjalankan sel, google-colabsqlviz akan memeriksa skema DataFrame dan merender widget visualisasi interaktif di area output sel dengan visualisasi default—untuk set data penguins, widget ini merender diagram sebar rata-rata flipper_length_mm dan body_mass_g yang dikelompokkan menurut species.

Di toolbar widget, klik Data untuk memeriksa baris DataFrame pokok dalam tabel yang diberi nomor halaman. Pilih Mode terpisah untuk melihat diagram dan tabel data pokok secara bersamaan. Klik Chart untuk kembali ke tampilan diagram.

Tampilan diagram sebar default di widget visualisasi yang menampilkan rata-rata panjang sirip dan massa tubuh menurut spesies penguin.

Menjelajahi dan menyesuaikan diagram

Anda dapat menyesuaikan jenis diagram, dimensi, metrik, agregasi, pengurutan, dan filter di antarmuka widget, serta mengekspor data yang dihasilkan kembali ke DataFrame di notebook Anda.

  1. Pilih jenis diagram: Di panel setelan konfigurasi, klik menu jenis diagram dan pilih jenis diagram, seperti Diagram batang vertikal. Untuk mengetahui daftar lengkap jenis diagram yang didukung, lihat Jenis diagram di Data Studio.
  2. Konfigurasikan dimensi dan metrik: Di tab Setup, konfigurasikan kolom untuk DataFrame penguins:
    • Tetap tetapkan Dimension ke species untuk mengelompokkan data berdasarkan spesies penguin.
    • Di bagian Metric - Y axis, tetapkan metrik ke body_mass_g dengan agregasi ditetapkan ke AVG (Average) untuk menghitung massa tubuh rata-rata dalam gram untuk setiap spesies.
    • Klik Add dimension dan pilih island atau sex untuk mengelompokkan diagram di beberapa dimensi, atau ubah agregasi metrik dari AVG menjadi MAX atau SUM.
  3. Mengurutkan dan memfilter visualisasi:
    • Di tab Setup, di bagian Sort, pilih body_mass_g dengan agregasi AVG, lalu pilih Descending untuk mengurutkan spesies berdasarkan massa tubuh rata-rata tertinggi.
    • Klik Add filter di toolbar widget untuk memfilter data berdasarkan nilai kolom (misalnya, body_mass_g lebih besar dari atau sama dengan 4000), atau klik Create output dataframe di bagian bawah widget untuk mengekspor data diagram gabungan atau data yang difilter ke sel DataFrame baru. Saat Anda memperbarui properti atau filter diagram, google-colabsqlviz akan menghitung ulang kueri terhadap DataFrame Anda dan memperbarui visualisasi:

Diagram batang vertikal dan panel konfigurasi di widget visualisasi yang menampilkan massa tubuh rata-rata menurut spesies penguin yang diurutkan dalam urutan menurun.

Untuk mengetahui informasi selengkapnya tentang cara mengonfigurasi properti diagram, agregasi, dan kontrol interaktif di antarmuka diagram tersemat, lihat dokumentasi berikut:

Mengonfigurasi eksekusi untuk DataFrame besar

Saat Anda meneruskan pyspark.sql.DataFrame ke explore_dataframe(df), google-colabsqlviz akan memilih di antara dua strategi eksekusi berdasarkan ukuran DataFrame:

  • Materialisasi dalam memori (default untuk DataFrame yang lebih kecil): Jika DataFrame diperkirakan berukuran 256 MiB atau kurang dan berisi maksimal 5.000.000 baris, google-colabsqlviz akan mengumpulkan DataFrame ke dalam memori kernel satu kali. Perubahan jenis diagram, agregasi, pengurutan, dan pemfilteran berikutnya berjalan di memori dengan latensi minimal dan tidak memicu tugas Spark baru.
  • Pushdown Spark terdistribusi (default untuk DataFrame yang lebih besar): Jika DataFrame melebihi anggaran byte atau baris, google-colabsqlviz akan membuat DataFrame tetap lazy dan menerjemahkan setiap kueri diagram, filter, pengurutan, dan permintaan penomoran halaman menjadi operasi PySpark yang dijalankan di sesi serverless Managed Service untuk Apache Spark Anda. Pendekatan ini dapat menambah latensi tambahan, tetapi memungkinkan Anda memvisualisasikan DataFrame yang jauh lebih besar.

Anda dapat menyesuaikan atau menonaktifkan nilai minimum materialisasi dalam memori dengan menetapkan variabel lingkungan COLABSQLVIZ_PYSPARK_EAGER_MAX_BYTES sebelum memanggil explore_dataframe(df):

import os

# Importing managed_spark_connect automatically imports explore_dataframe
from google.cloud.managed_spark_connect import ManagedSparkSession

# Set to "0" to disable upfront collection and push all chart queries to Spark,
# or set a custom byte limit, such as str(64 * 1024 * 1024) for 64 MiB.
os.environ["COLABSQLVIZ_PYSPARK_EAGER_MAX_BYTES"] = "0"

explore_dataframe(df)

Langkah berikutnya