Bagikan melalui


Tutorial: Menjalankan kode Python pada komputasi tanpa server

Nota

Artikel ini berlaku untuk Databricks Connect 15.4 LTS ke atas.

Artikel ini menjelaskan cara membuat proyek di IDE Anda, menyiapkan lingkungan virtual Anda, menginstal Databricks Connect for Python, dan menjalankan kode pada komputasi tanpa server di ruang kerja Databricks Anda.

Tutorial ini menggunakan Python 3.12 dan Databricks Connect 17.3 LTS. Untuk menggunakan versi Python of Databricks Connect lainnya, versi tersebut harus kompatibel. Lihat matriks dukungan versi.

Persyaratan

Untuk menyelesaikan tutorial ini, persyaratan berikut harus dipenuhi:

Langkah 1: Mengonfigurasi autentikasi Databricks

Tutorial ini menggunakan autentikasi pengguna-ke-mesin (U2M) Databricks OAuth dan profil konfigurasi Databricks untuk mengautentikasi ke ruang kerja Databricks Anda.

  1. Gunakan Databricks CLI untuk memulai manajemen token OAuth secara lokal dengan menjalankan perintah berikut untuk setiap ruang kerja target. Dalam perintah berikut, ganti <workspace-url> dengan URL instans ruang kerja Databricks Anda, misalnya https://dbc-a1b2345c-d6e7.cloud.databricks.com.

    databricks auth login --host <workspace-url>
    
  2. Databricks CLI meminta Anda untuk menyimpan informasi yang Anda masukkan sebagai profil konfigurasi Databricks. Tekan Enter untuk menerima nama profil yang disarankan, atau masukkan nama profil baru atau yang sudah ada. Databricks merekomendasikan penggunaan DEFAULT sebagai nama profil Anda.

  3. Di browser web Anda, selesaikan instruksi di layar untuk masuk ke ruang kerja Databricks Anda.

Langkah 2: Buat lingkungan virtual Python baru

  1. Buat folder proyek Anda dan buka di IDE Anda. Misalnya, di menu utama Visual Studio Code, klikBuka Folder>Buka File>

  2. Buka jendela terminal di akar folder proyek. Misalnya, di menu utama Visual Studio Code, klik Tampilkan>Terminal.

  3. Buat lingkungan virtual untuk proyek yang disebut venv di akar folder proyek dengan menjalankan perintah berikut di terminal:

    python3.12 -m venv .venv
    
  4. Aktifkan lingkungan virtual Anda:

    # Linux/Mac
    source .venv/bin/activate
    
    # Windows
    .venv\Scripts\activate
    

Langkah 3: Instal Databricks Connect

Instal Databricks Connect. Untuk informasi tentang versi terbaru Databricks Connect yang dirilis, lihat Catatan rilis Databricks Connect.

pip install "databricks-connect==17.3.*"

Langkah 4: Tambahkan kode dan jalankan

  1. Menambahkan file main.py Python baru ke proyek Anda

  2. Masukkan kode berikut ke dalam file, ganti tempat penampung <profile-name> dengan nama profil konfigurasi Anda dari Langkah 1, lalu simpan file. Nama profil konfigurasi default adalah DEFAULT.

    from databricks.connect import DatabricksSession
    
    spark = DatabricksSession.builder.serverless().profile("<profile-name>").getOrCreate()
    
    df = spark.read.table("samples.nyctaxi.trips")
    df.show(5)
    
  3. Jalankan kode menggunakan perintah berikut:

    python3 main.py
    

    Lima baris tabel dikembalikan:

    +--------------------+---------------------+-------------+-----------+---------+-----------+
    |tpep_pickup_datetime|tpep_dropoff_datetime|trip_distance|fare_amount|pickup_zip|dropoff_zip|
    +--------------------+---------------------+-------------+-----------+----------+-----------+
    | 2016-02-16 22:40:45|  2016-02-16 22:59:25|         5.35|       18.5|     10003|      11238|
    | 2016-02-05 16:06:44|  2016-02-05 16:26:03|          6.5|       21.5|     10282|      10001|
    | 2016-02-08 07:39:25|  2016-02-08 07:44:14|          0.9|        5.5|     10119|      10003|
    | 2016-02-29 22:25:33|  2016-02-29 22:38:09|          3.5|       13.5|     10001|      11222|
    | 2016-02-03 17:21:02|  2016-02-03 17:23:24|          0.3|        3.5|     10028|      10028|
    +--------------------+---------------------+-------------+-----------+----------+-----------+
    

Anda telah berhasil menjalankan kueri pertama Anda pada komputasi tanpa server Databricks menggunakan Databricks Connect dari IDE Anda.

Langkah 5: Siapkan produksi kode Anda

Untuk skenario produksi, penting untuk menghindari penggunaan spesifikasi komputasi di penyusun sesi Spark. Misalnya, jika Anda menyebarkan kode ke kluster klasik: Standard atau Dedicated menggunakan .serverless() API di penyusun sesi Spark Anda, sesi Spark tanpa server baru dibuat menggunakan kluster klasik sebagai klien.

Untuk membuat kode Anda fleksibel dan siap untuk produksi, sesi Spark tidak boleh berisi parameter apa pun.

spark = DatabricksSession.builder.getOrCreate()

Namun, ketika kode ini dijalankan pada Databricks, sesi Spark global default komputasi Databricks digunakan.

Untuk mengaktifkan komputasi tanpa server di IDE Anda, gunakan profil konfigurasi DEFAULT, yang dipilih oleh DatabricksSession.builder ketika tidak ada parameter yang ditentukan:

  1. Buat profil konfigurasi bernama DEFAULT menggunakan instruksi dari langkah 1.

  2. Gunakan editor teks untuk membuka .databrickscfg file, yang ditemukan di:

    • Folder utama pengguna Anda $HOME di Unix, Linux, atau macOS: ~/.databrickscfg, atau

    • Folder (beranda pengguna) Anda %USERPROFILE% di Windows. Misalnya, untuk macOS:

      nano ~/.databrickscfg
      
  3. Tambahkan serverless_compute_id = auto ke DEFAULT profil:

    [DEFAULT]
    host                  = https://my-workspace.cloud.databricks.com
    auth_type             = databricks-cli
    serverless_compute_id = auto
    
  4. Simpan perubahan dan keluar dari editor Anda.

  5. Ubah kode Anda untuk menggunakan sesi Spark umum dan jalankan:

    from databricks.connect import DatabricksSession
    
    spark = DatabricksSession.builder.getOrCreate()
    
    df = spark.read.table("samples.nyctaxi.trips")
    df.show(5)
    
    python3 main.py
    

Anda telah berhasil menjalankan kode siap produksi pada komputasi tanpa server Databricks menggunakan Databricks Connect dari IDE Anda menggunakan profil konfigurasi DEFAULT.

Petunjuk / Saran

Anda juga dapat menggunakan variabel lingkungan untuk mengatur koneksi ke komputasi Databricks tertentu:

  • Tanpa server: DATABRICKS_SERVERLESS_COMPUTE_ID=auto
  • Klasik: DATABRICKS_CLUSTER_ID=<your_cluster_id>